private IList <Expression> ProcessArgsList(ExpressionAntlrParser.ArgsListContext context) { var result = new List <Expression>(); if (context == null) { return(result); } foreach (var child in context.children) { if (child is ExpressionAntlrParser.LambdaContext lambda) { var evalParam = MakeExpression(ExpressionType.Accessor, Expression.ConstantExpression(lambda.IDENTIFIER().GetText())); var evalFun = Visit(lambda.expression()); result.Add(evalParam); result.Add(evalFun); } else if (child is ExpressionAntlrParser.ExpressionContext expression) { result.Add(Visit(expression)); } } return(result); }
private IEnumerable <Expression> ProcessArgsList(ExpressionAntlrParser.ArgsListContext context) { if (context != null) { foreach (var expression in context.expression()) { yield return(Visit(expression)); } } }
/// <summary> /// Exit a parse tree produced by <see cref="ExpressionAntlrParser.argsList"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="ExpressionAntlrParser.argsList"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context) { return(VisitChildren(context)); }