Ejemplo n.º 1
0
    // throws RecognitionException [1]
    // $ANTLR start programa
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:44:1: programa[int locales] : ^( PROGRAMA declaraciones_api principal[locales] ) -> {$principal.st};
    public programa_return programa(int locales)
    {
        programa_return retval = new programa_return();
        retval.start = input.LT(1);

        principal_return principal1 = null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:44:23: ( ^( PROGRAMA declaraciones_api principal[locales] ) -> {$principal.st})
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:44:25: ^( PROGRAMA declaraciones_api principal[locales] )
            {
                Match(input,PROGRAMA,FOLLOW_PROGRAMA_in_programa49);

                Match(input, Token.DOWN, null);
                PushFollow(FOLLOW_declaraciones_api_in_programa51);
                declaraciones_api();
                followingStackPointer_--;

                PushFollow(FOLLOW_principal_in_programa53);
                principal1 = principal(locales);
                followingStackPointer_--;

                Match(input, Token.UP, null);

                // TEMPLATE REWRITE
                // 44:74: -> {$principal.st}
                {
                    retval.st = principal1.st;
                }

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
Ejemplo n.º 2
0
    // throws RecognitionException [1]
    // $ANTLR start programa
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:61:1: programa : declaraciones_api principal -> ^( PROGRAMA declaraciones_api principal ) ;
    public programa_return programa()
    {
        programa_return retval = new programa_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        declaraciones_api_return declaraciones_api1 = null;

        principal_return principal2 = null;

        RewriteRuleSubtreeStream stream_principal = new RewriteRuleSubtreeStream(adaptor,"rule principal");
        RewriteRuleSubtreeStream stream_declaraciones_api = new RewriteRuleSubtreeStream(adaptor,"rule declaraciones_api");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:61:10: ( declaraciones_api principal -> ^( PROGRAMA declaraciones_api principal ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:61:12: declaraciones_api principal
            {
                PushFollow(FOLLOW_declaraciones_api_in_programa110);
                declaraciones_api1 = declaraciones_api();
                followingStackPointer_--;

                stream_declaraciones_api.Add(declaraciones_api1.Tree);
                PushFollow(FOLLOW_principal_in_programa112);
                principal2 = principal();
                followingStackPointer_--;

                stream_principal.Add(principal2.Tree);

                // AST REWRITE
                // elements:          principal, declaraciones_api
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                retval.tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (FkvmAST)adaptor.GetNilNode();
                // 61:40: -> ^( PROGRAMA declaraciones_api principal )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:61:43: ^( PROGRAMA declaraciones_api principal )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(PROGRAMA, "PROGRAMA"), root_1);

                    adaptor.AddChild(root_1, stream_declaraciones_api.Next());
                    adaptor.AddChild(root_1, stream_principal.Next());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

            }

            retval.stop = input.LT(-1);

                retval.tree = (FkvmAST)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop);

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }