Beispiel #1
0
        public override double Eval(IContext ctx)
        {
            var rhsVal = _rhs.Eval(ctx);
            var result = _op(rhsVal);

            return(result);
        }
        public override Object Eval()
        {
            Object var   = varNode.Eval();
            int    index = ((int)keyNode.Eval());
            Object ret   = ((List <Object>)var)[index];

            return(ret);
        }
Beispiel #3
0
        public override Object Eval()
        {
            Object ret = null;

            while ((bool)condition.Eval())
            {
                ret = body.Eval();
            }
            return(ret);
        }
 public override Object Eval()
 {
     if (value is Function)
     {
         return(parser.setVariable(name, value));
     }
     else
     {
         return(parser.setVariable(name, value.Eval()));
     }
 }
Beispiel #5
0
        public override Object Eval()
        {
            Object ret = null;

            if ((condition != null) && (thenPart != null))
            {
                if ((bool)condition.Eval())
                {
                    ret = thenPart.Eval();
                }
            }
            if ((condition != null) && (elsePart != null))
            {
                if (!(Boolean)condition.Eval())
                {
                    ret = elsePart.Eval();
                }
            }
            return(ret);
        }
        public override Object Eval()
        {
            Object arrayVariable = array.Eval();
            double index         = ToDouble(indexExpression);
            int    intIndex      = Int32.Parse(index.ToString());
            Object newValue      = rightSideExpression.Eval();

            ((List <Object>)arrayVariable)[intIndex] = newValue;
            Object ret = arrayVariable;

            return(ret);
        }
        public override Object Eval()
        {
            Object res = null;

            variable.Eval();
            while ((bool)condition.Eval())
            {
                res = body.Eval();
                action.Eval();
            }
            return(res);
        }
        public override Object Eval()
        {
            int waitAmount = (int)interval.Eval();

            try
            {
                System.Threading.Thread.Sleep(waitAmount);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in WaitNode.eval() method" + e);
            }
            return(waitAmount);
        }
        public override Object Eval()
        {
            Object writee = expression.Eval();

            if (type.Equals("sameline"))
            {
                Console.WriteLine(writee);
            }
            else
            if (type.Equals("newline"))
            {
                Console.WriteLine(writee);
            }
            return(writee);
        }
Beispiel #10
0
        public override Object Eval()
        {
            // Get the function object from symbol table
            // with this name by evaluating variable node

            Function function = (Function)name.Eval();
            List <BoundParameter> boundParameters = new List <BoundParameter>();

            if (function.getParameters() != null)
            {
                // Some functions do not have parameters, check it out
                if (actualParameters != null)
                {
                    if (actualParameters.Count() < function.getParameters().Count())
                    {
                        Console.WriteLine("Too Few Parameters in Function Call: "
                                          + function.getName());
                        Environment.Exit(0);
                    }
                    else if (actualParameters.Count > function.getParameters().Count)
                    {
                        Console.WriteLine("Too Many Parameters in Function Call: " + function.getName());
                        Environment.Exit(0);
                    }
                    else
                    {
                        // Bind actual parameters
                        for (int index = 0; index < actualParameters.Count; index++)
                        {
                            String name  = function.getParameters()[index].getName();
                            Object value = actualParameters[index].getValue();
                            //If the parameter is a function!
                            if (value is Function)
                            {
                                value = ((Function)value).Eval();
                            }
                            boundParameters.Add(new BoundParameter(name, value));
                        }
                    }
                }
            }
            //Now, call this function
            return(parser.ExecuteFunction(function, boundParameters));
        }
        public void Interpret(String source, bool debug)
        {
            Tokenizer tokenizer = new Tokenizer();
            Parser    parser    = new Parser(tokenizer.Tokenize(source));

            parser.setVariable("pi", 3.14159265358979);
            parser.setVariable("e", 2.718281828459045);

            if (debug)
            {
                DumpTokens(parser);
            }

            parser.MatchAndEat(TokenType.SCRIPT);

            Console.WriteLine("\n=============== Building block! =================\n");
            Node script = parser.Block();

            script.Eval();
        }
        public double ToDouble(Node node)
        {
            Object res = node.Eval();

            return(Double.Parse(res.ToString()));
        }
Beispiel #13
0
 public Object Eval()
 {
     return(value.Eval());
 }
Beispiel #14
0
 public override Object Eval()
 {
     return(body.Eval());
 }
        public bool ToBoolean(Node node)
        {
            Object res = node.Eval();

            return((bool)res);
        }
 public Object ToObject(Node node)
 {
     return(node.Eval());
 }