public static void RunNormalAndStepByStep( string script, Action<RuntimeObj> test, GlobalContext ctx = null ) { var e = ExprAnalyser.AnalyseString( script ); // Tests the empty, default, visitor: no change must have been made to the AST. var emptyVisitor = new ExprVisitor(); Assert.That( emptyVisitor.VisitExpr( e ), Is.SameAs( e ) ); // Evaluates result directly. RuntimeObj syncResult = ScriptEngine.Evaluate( e, ctx ); test( syncResult ); // Step-by-step evaluation. ScriptEngine engine = new ScriptEngine( ctx ); engine.Breakpoints.BreakAlways = true; ExecAsync( script, test, null, e, syncResult, engine, true ); }
protected internal override ExprAST Accept(ExprVisitor visitor) { return(visitor.VisitIfExprAST(this)); }
public override TResult Accept <TResult, TContext>(ExprVisitor <TResult, TContext> visitor, TContext ctx) { return(visitor.VisitIfExpAST(ctx, this)); }
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); _innerExpression.Accept(visitor); }
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); SpreadObject.Accept(visitor); }
protected internal virtual ExprAST Accept(ExprVisitor visitor) { return visitor.VisitExtension(this); }
public abstract R Accept(ExprVisitor <R> visitor);
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); Target?.Accept(visitor); }
public BindingExplorer(ExprVisitor interpreter) { this.interpreter = interpreter; }
protected internal virtual ExprAST VisitChildren(ExprVisitor visitor) { return(visitor.Visit(this)); }
internal abstract void Accept(ExprVisitor visitor);
protected internal virtual ExprAST Accept(ExprVisitor visitor) { return(visitor.VisitExtension(this)); }
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); LeftHandSide.Accept(visitor); RightHandSide.Accept(visitor); }
protected internal virtual ExprAST VisitChildren(ExprVisitor visitor) { return visitor.Visit(this); }
public override R Accept <R>(ExprVisitor <R> visitor) { return(visitor.Visit(this)); }
public GramInterpreter() { interpreter = new ExprVisitor(); }
protected internal override ExprAST Accept(ExprVisitor visitor) { return visitor.VisitForExprAST(this); }
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); _obj.Accept(visitor); }
public override R Accept(ExprVisitor <R> visitor) { return(visitor.VisitSetExpr(this)); }
public abstract TResult Accept <TResult, TContext>(ExprVisitor <TResult, TContext> visitor, TContext ctx);
public bool ParseInt(out int value) { bool parsed = false; value = 0; if (IsValid) { try { NCalc.Expression expr = new NCalc.Expression(Expression); LogicalExpression pexpr = NCalc.Expression.Compile(Expression, false); ExprVisitor v = new ExprVisitor(); pexpr.Accept(v); if (!v.ComplexExpression) { value = Convert.ToInt32(expr.Evaluate()); parsed = true; } } catch (Exception) { } } return parsed; }
internal override void Accept(ExprVisitor visitor) { visitor.Visit(this); First.Accept(visitor); Next.Accept(visitor); }