public void SimpleExpr() { var src = "1^2"; var lexer = new Lexer(new MemoryStream(Encoding.UTF8.GetBytes(src))); lexer.Start(); var parser = new ExprParser(lexer.TokStream); var ast = parser.Parse(0); var interpreter = new AstInterpreter(); Console.Write(Convert.ToInt64(interpreter.Eval(ast))); }
public override object Call(AstInterpreter interpreter, IEnumerable <object> arguments) { return(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); }
public override object Call(AstInterpreter interpreter, IEnumerable <object> arguments) { interpreter.Reset(); return(null); }
public static void Resolve(AstInterpreter interpreter, IEnumerable <Statement> statements) { var resolver = new Resolver(interpreter); resolver.Resolve(statements); }
private Resolver(AstInterpreter interpreter) { scope = new Scope(interpreter); }
public Scope(AstInterpreter interpreter) { this.interpreter = interpreter; }
public override object Call(AstInterpreter interpreter, IEnumerable<object> arguments) { interpreter.RaiseOut(arguments.First()); return null; }