예제 #1
0
        public override BaseExpression VisitFunctionInvoke([NotNull] ExpressionParser.FunctionInvokeContext context)
        {
            var functionName = context.identifier().GetText();
            var parameters   = context.parameter_list();
            var arguments    = new List <BaseExpression>();

            for (int i = 0; i < parameters.ChildCount; i += 2)
            {
                arguments.Add(Visit(parameters.children[i]));
            }
            return(FunctionFactory.CreateFunction(functionName, arguments));
        }
예제 #2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="ExpressionParser.functionInvoke"/>.
 /// <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 VisitFunctionInvoke([NotNull] ExpressionParser.FunctionInvokeContext context)
 {
     return(VisitChildren(context));
 }