Exemplo n.º 1
0
    // throws RecognitionException [1]
    // $ANTLR start declaracion_api
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:48:1: declaracion_api : ^( DECLARACIONAPI tipo IDENT ) ;
    public declaracion_api_return declaracion_api()
    {
        declaracion_api_return retval = new declaracion_api_return();
        retval.start = input.LT(1);

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:48:17: ( ^( DECLARACIONAPI tipo IDENT ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:48:19: ^( DECLARACIONAPI tipo IDENT )
            {
                Match(input,DECLARACIONAPI,FOLLOW_DECLARACIONAPI_in_declaracion_api83);

                Match(input, Token.DOWN, null);
                PushFollow(FOLLOW_tipo_in_declaracion_api85);
                tipo();
                followingStackPointer_--;

                Match(input,IDENT,FOLLOW_IDENT_in_declaracion_api87);

                Match(input, Token.UP, null);

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
Exemplo n.º 2
0
    // throws RecognitionException [1]
    // $ANTLR start declaracion_api
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:65:1: declaracion_api : 'api' tipo IDENT '(' lista_decl ')' ';' -> ^( DECLARACIONAPI tipo IDENT ) ;
    public declaracion_api_return declaracion_api()
    {
        declaracion_api_return retval = new declaracion_api_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken string_literal3 = null;
        IToken IDENT5 = null;
        IToken char_literal6 = null;
        IToken char_literal8 = null;
        IToken char_literal9 = null;
        tipo_return tipo4 = null;

        lista_decl_return lista_decl7 = null;

        FkvmAST string_literal3_tree=null;
        FkvmAST IDENT5_tree=null;
        FkvmAST char_literal6_tree=null;
        FkvmAST char_literal8_tree=null;
        FkvmAST char_literal9_tree=null;
        RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT");
        RewriteRuleTokenStream stream_24 = new RewriteRuleTokenStream(adaptor,"token 24");
        RewriteRuleTokenStream stream_25 = new RewriteRuleTokenStream(adaptor,"token 25");
        RewriteRuleTokenStream stream_26 = new RewriteRuleTokenStream(adaptor,"token 26");
        RewriteRuleTokenStream stream_27 = new RewriteRuleTokenStream(adaptor,"token 27");
        RewriteRuleSubtreeStream stream_tipo = new RewriteRuleSubtreeStream(adaptor,"rule tipo");
        RewriteRuleSubtreeStream stream_lista_decl = new RewriteRuleSubtreeStream(adaptor,"rule lista_decl");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:65:17: ( 'api' tipo IDENT '(' lista_decl ')' ';' -> ^( DECLARACIONAPI tipo IDENT ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:65:19: 'api' tipo IDENT '(' lista_decl ')' ';'
            {
                string_literal3 = (IToken)input.LT(1);
                Match(input,24,FOLLOW_24_in_declaracion_api155);
                stream_24.Add(string_literal3);

                PushFollow(FOLLOW_tipo_in_declaracion_api157);
                tipo4 = tipo();
                followingStackPointer_--;

                stream_tipo.Add(tipo4.Tree);
                IDENT5 = (IToken)input.LT(1);
                Match(input,IDENT,FOLLOW_IDENT_in_declaracion_api159);
                stream_IDENT.Add(IDENT5);

                char_literal6 = (IToken)input.LT(1);
                Match(input,25,FOLLOW_25_in_declaracion_api161);
                stream_25.Add(char_literal6);

                PushFollow(FOLLOW_lista_decl_in_declaracion_api163);
                lista_decl7 = lista_decl();
                followingStackPointer_--;

                stream_lista_decl.Add(lista_decl7.Tree);
                char_literal8 = (IToken)input.LT(1);
                Match(input,26,FOLLOW_26_in_declaracion_api165);
                stream_26.Add(char_literal8);

                char_literal9 = (IToken)input.LT(1);
                Match(input,27,FOLLOW_27_in_declaracion_api167);
                stream_27.Add(char_literal9);

                     if(!symtable.ContainsKey(IDENT5.Text))
                     {
                           symtable.Add(IDENT5.Text, new Symbol(input.ToString(tipo4.start,tipo4.stop), -1));
                     }

                // AST REWRITE
                // elements:          tipo, IDENT
                // 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();
                // 70:8: -> ^( DECLARACIONAPI tipo IDENT )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:70:11: ^( DECLARACIONAPI tipo IDENT )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(DECLARACIONAPI, "DECLARACIONAPI"), root_1);

                    adaptor.AddChild(root_1, stream_tipo.Next());
                    adaptor.AddChild(root_1, stream_IDENT.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;
    }