Esempio n. 1
0
        /// <remark>
        /// function : KW_FUN LPAREN (function_argument (SYM_COMMA function_argument)*)? RPAREN statement_block ;
        /// function_argument : argument_type_specifier IDENTIFIER ;
        /// </remark>
        public UserDefinedLambda(ShellParser.FunctionContext ctx)
        {
            context         = ctx;
            statement_block = context.statement_block();
            for (int i = 0; i < context.function_argument().Length; i++)
            {
                var    arg   = context.function_argument(i);
                string name  = arg.IDENTIFIER().GetText();
                var    token = Shell.Interpreter.Utility.GetTokenOfArgumentTypeSpecifier(arg.argument_type_specifier());

                argList.Add(new Tuple <string, Specifier>(name, Shell.Interpreter.Utility.GetSpecifier(token)));
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="ShellParser.statement_block"/>.
 /// <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 VisitStatement_block([NotNull] ShellParser.Statement_blockContext context)
 {
     return(VisitChildren(context));
 }