示例#1
0
    // throws RecognitionException [1]
    // $ANTLR start declaraciones_api
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:46:1: declaraciones_api : ^( LISTADECLARACIONESAPI ( declaracion_api )* ) ;
    public declaraciones_api_return declaraciones_api()
    {
        declaraciones_api_return retval = new declaraciones_api_return();
        retval.start = input.LT(1);

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:46:19: ( ^( LISTADECLARACIONESAPI ( declaracion_api )* ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:46:21: ^( LISTADECLARACIONESAPI ( declaracion_api )* )
            {
                Match(input,LISTADECLARACIONESAPI,FOLLOW_LISTADECLARACIONESAPI_in_declaraciones_api69);

                if ( input.LA(1) == Token.DOWN )
                {
                    Match(input, Token.DOWN, null);
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:46:45: ( declaracion_api )*
                    do
                    {
                        int alt1 = 2;
                        int LA1_0 = input.LA(1);

                        if ( (LA1_0 == DECLARACIONAPI) )
                        {
                            alt1 = 1;
                        }

                        switch (alt1)
                        {
                            case 1 :
                                // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:46:45: declaracion_api
                                {
                                    PushFollow(FOLLOW_declaracion_api_in_declaraciones_api71);
                                    declaracion_api();
                                    followingStackPointer_--;

                                }
                                break;

                            default:
                                goto loop1;
                        }
                    } while (true);

                    loop1:
                        ;	// Stops C# compiler whinging that label 'loop1' has no statements

                    Match(input, Token.UP, null);
                }

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
示例#2
0
    // throws RecognitionException [1]
    // $ANTLR start declaraciones_api
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:1: declaraciones_api : (lista+= declaracion_api )* -> ^( LISTADECLARACIONESAPI ( $lista)* ) ;
    public declaraciones_api_return declaraciones_api()
    {
        declaraciones_api_return retval = new declaraciones_api_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IList list_lista = null;
        RuleReturnScope lista = null;
        RewriteRuleSubtreeStream stream_declaracion_api = new RewriteRuleSubtreeStream(adaptor,"rule declaracion_api");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:19: ( (lista+= declaracion_api )* -> ^( LISTADECLARACIONESAPI ( $lista)* ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:21: (lista+= declaracion_api )*
            {
                // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:21: (lista+= declaracion_api )*
                do
                {
                    int alt1 = 2;
                    int LA1_0 = input.LA(1);

                    if ( (LA1_0 == 24) )
                    {
                        alt1 = 1;
                    }

                    switch (alt1)
                    {
                        case 1 :
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:22: lista+= declaracion_api
                            {
                                PushFollow(FOLLOW_declaracion_api_in_declaraciones_api134);
                                lista = declaracion_api();
                                followingStackPointer_--;

                                stream_declaracion_api.Add(lista.Tree);
                                if (list_lista == null) list_lista = new ArrayList();
                                list_lista.Add(lista);

                            }
                            break;

                        default:
                            goto loop1;
                    }
                } while (true);

                loop1:
                    ;	// Stops C# compiler whinging that label 'loop1' has no statements

                // AST REWRITE
                // elements:          lista
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:  lista
                retval.tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));
                RewriteRuleSubtreeStream stream_lista = new RewriteRuleSubtreeStream(adaptor, "token lista", list_lista);
                root_0 = (FkvmAST)adaptor.GetNilNode();
                // 63:47: -> ^( LISTADECLARACIONESAPI ( $lista)* )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:50: ^( LISTADECLARACIONESAPI ( $lista)* )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTADECLARACIONESAPI, "LISTADECLARACIONESAPI"), root_1);

                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:63:74: ( $lista)*
                    while ( stream_lista.HasNext() )
                    {
                        adaptor.AddChild(root_1, ((ParserRuleReturnScope)stream_lista.Next()).Tree);

                    }
                    stream_lista.Reset();

                    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;
    }