public object VisitRun(RunExpr expr) { // 1. visit the function call var result = expr.FuncCallExpr.Visit(this); // Case 1. Call something after? if (expr.FuncCallOnAfterExpr != null && expr.Mode == "after") { result = expr.FuncCallOnAfterExpr.Visit(this); } // Case 2. Call something with the input from the first ? else if (expr.FuncCallOnAfterExpr != null && expr.Mode == "on") { var funcCallExpr = expr.FuncCallOnAfterExpr as FunctionCallExpr; funcCallExpr.RetainEvaluatedParams = true; if(funcCallExpr.ParamList == null) funcCallExpr.ParamList = new List<object>(); funcCallExpr.ParamList.Add(result); funcCallExpr.Visit(this); } return result; }
/// <summary> /// Creates an array expression from the parameters supplied. /// </summary> /// <param name="fields"></param> /// <param name="token"></param> /// <returns></returns> public static Expr Run(string funcName, Expr funcCallExpr, TokenData token) { var exp = new RunExpr(); exp.FuncName = funcName; exp.FuncCallExpr = funcCallExpr; SetupContext(exp, token); return exp; }
public object VisitRun(RunExpr expr) { return null; }