public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            ProgNodeValue value = expression.Evaluate(context);

            context.SymTable.Assign(variable, value, 0);

            return(null);
        }
        /***************************/
        /*** Protected Functions ***/
        /***************************/

        public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            ProgNodeValue left  = leftExp.Evaluate(context);
            ProgNodeValue right = rightExp.Evaluate(context);

            int type = GetBoxType(left, right);

            return(ExecBoxing(left, right, type));
        }
예제 #3
0
        public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            while (expression.Evaluate(context).GetBoolean())
            {
                codeBlock.Evaluate(context);
            }

            return(null);
        }
            public ProgNodeValue GetInitialize(ProgNodeContext context)
            {
                ProgNodeValue value = null;

                if (Initialize != null)
                {
                    value = Initialize.Evaluate(context);
                }

                return(value);
            }
            public int GetSize(ProgNodeContext context)
            {
                int size = 1;

                if (Size != null)
                {
                    size = Size.Evaluate(context).GetInteger();
                }

                return(size);
            }
예제 #6
0
        public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            context.SymTable.NewScope();

            foreach (ProgNode node in nodeList)
            {
                node.Evaluate(context);
            }

            context.SymTable.DeleteScope();

            return(null);
        }
        /**************************/
        /*** Override Functions ***/
        /**************************/

        public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            foreach (var variable in variables)
            {
                int size = variable.GetSize(context);

                ProgNodeValue initialize = variable.GetInitialize(context);

                context.SymTable.Declare(variable.Name, variable.Type, size, initialize);
            }

            return(null);
        }
        public override ProgNodeValue Evaluate(ProgNodeContext context)
        {
            ProgNodeValue value = null;

            return(value);
        }
예제 #9
0
 public override ProgNodeValue Evaluate(ProgNodeContext context)
 {
     return(null);
 }