Esempio n. 1
0
        /// <summary>
        /// statement : EOL
        ///           | load_namespace EOL
        ///           | program_shorthand EOL
        ///           | declaration EOL
        ///           | expression EOL
        ///           | control
        ///           ;
        /// </summary>
        override public Shell.Types.IShellReturnable VisitStatement(ShellParser.StatementContext context)
        {
            var ctx_nsLoad   = context.load_namespace();
            var ctx_progExec = context.program_shorthand();
            var ctx_decl     = context.declaration();
            var ctx_expr     = context.expression();
            var ctx_ctrl     = context.control();

            if (ctx_nsLoad != null)
            {
                return(VisitLoad_namespace(ctx_nsLoad));
            }
            else if (ctx_progExec != null)
            {
                return(VisitProgram_shorthand(ctx_progExec));
            }
            else if (ctx_decl != null)
            {
                return(VisitDeclaration(ctx_decl));
            }
            else if (ctx_expr != null)
            {
                var ret = VisitExpression(ctx_expr);
                ret = Utility.GetReturnableValue(ret);
                return(ret);
            }
            else if (ctx_ctrl != null)
            {
                return(VisitControl(ctx_ctrl));
            }

            return(defaultReturnValue);
        }
Esempio n. 2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="ShellParser.statement"/>.
 /// <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([NotNull] ShellParser.StatementContext context)
 {
     return(VisitChildren(context));
 }