Ejemplo n.º 1
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;
    }
Ejemplo 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;
    }
Ejemplo n.º 3
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;
    }
Ejemplo n.º 4
0
    // throws RecognitionException [1]
    // $ANTLR start decl
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:96:1: decl : tipo IDENT -> ^( DECLARACIONPARAM tipo IDENT ) ;
    public decl_return decl()
    {
        decl_return retval = new decl_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken IDENT29 = null;
        tipo_return tipo28 = null;

        FkvmAST IDENT29_tree=null;
        RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT");
        RewriteRuleSubtreeStream stream_tipo = new RewriteRuleSubtreeStream(adaptor,"rule tipo");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:96:6: ( tipo IDENT -> ^( DECLARACIONPARAM tipo IDENT ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:96:8: tipo IDENT
            {
                PushFollow(FOLLOW_tipo_in_decl385);
                tipo28 = tipo();
                followingStackPointer_--;

                stream_tipo.Add(tipo28.Tree);
                IDENT29 = (IToken)input.LT(1);
                Match(input,IDENT,FOLLOW_IDENT_in_decl387);
                stream_IDENT.Add(IDENT29);

                // AST REWRITE
                // elements:          IDENT, tipo
                // 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();
                // 96:19: -> ^( DECLARACIONPARAM tipo IDENT )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:96:22: ^( DECLARACIONPARAM tipo IDENT )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(DECLARACIONPARAM, "DECLARACIONPARAM"), 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;
    }
Ejemplo n.º 5
0
    // throws RecognitionException [1]
    // $ANTLR start lista_instrucciones
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:1: lista_instrucciones : (lista+= instruccion )* -> ^( LISTAINSTRUCCIONES ( $lista)* ) ;
    public lista_instrucciones_return lista_instrucciones()
    {
        lista_instrucciones_return retval = new lista_instrucciones_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IList list_lista = null;
        RuleReturnScope lista = null;
        RewriteRuleSubtreeStream stream_instruccion = new RewriteRuleSubtreeStream(adaptor,"rule instruccion");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:21: ( (lista+= instruccion )* -> ^( LISTAINSTRUCCIONES ( $lista)* ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:23: (lista+= instruccion )*
            {
                // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:23: (lista+= instruccion )*
                do
                {
                    int alt2 = 2;
                    int LA2_0 = input.LA(1);

                    if ( ((LA2_0 >= IDENT && LA2_0 <= LIT_LOGICO) || LA2_0 == 25 || LA2_0 == 33 || (LA2_0 >= 35 && LA2_0 <= 41) || (LA2_0 >= 50 && LA2_0 <= 51) || LA2_0 == 54) )
                    {
                        alt2 = 1;
                    }

                    switch (alt2)
                    {
                        case 1 :
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:24: lista+= instruccion
                            {
                                PushFollow(FOLLOW_instruccion_in_lista_instrucciones213);
                                lista = instruccion();
                                followingStackPointer_--;

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

                            }
                            break;

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

                loop2:
                    ;	// Stops C# compiler whinging that label 'loop2' 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();
                // 74:45: -> ^( LISTAINSTRUCCIONES ( $lista)* )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:48: ^( LISTAINSTRUCCIONES ( $lista)* )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTAINSTRUCCIONES, "LISTAINSTRUCCIONES"), root_1);

                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:74:69: ( $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;
    }
Ejemplo n.º 6
0
    // throws RecognitionException [1]
    // $ANTLR start llamada
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:141:1: llamada : IDENT '(' lista_expr ')' -> ^( LLAMADA IDENT lista_expr ) ;
    public llamada_return llamada()
    {
        llamada_return retval = new llamada_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken IDENT93 = null;
        IToken char_literal94 = null;
        IToken char_literal96 = null;
        lista_expr_return lista_expr95 = null;

        FkvmAST IDENT93_tree=null;
        FkvmAST char_literal94_tree=null;
        FkvmAST char_literal96_tree=null;
        RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT");
        RewriteRuleTokenStream stream_25 = new RewriteRuleTokenStream(adaptor,"token 25");
        RewriteRuleTokenStream stream_26 = new RewriteRuleTokenStream(adaptor,"token 26");
        RewriteRuleSubtreeStream stream_lista_expr = new RewriteRuleSubtreeStream(adaptor,"rule lista_expr");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:141:9: ( IDENT '(' lista_expr ')' -> ^( LLAMADA IDENT lista_expr ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:141:11: IDENT '(' lista_expr ')'
            {
                IDENT93 = (IToken)input.LT(1);
                Match(input,IDENT,FOLLOW_IDENT_in_llamada825);
                stream_IDENT.Add(IDENT93);

                char_literal94 = (IToken)input.LT(1);
                Match(input,25,FOLLOW_25_in_llamada827);
                stream_25.Add(char_literal94);

                PushFollow(FOLLOW_lista_expr_in_llamada829);
                lista_expr95 = lista_expr();
                followingStackPointer_--;

                stream_lista_expr.Add(lista_expr95.Tree);
                char_literal96 = (IToken)input.LT(1);
                Match(input,26,FOLLOW_26_in_llamada831);
                stream_26.Add(char_literal96);

                // AST REWRITE
                // elements:          lista_expr, 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();
                // 141:36: -> ^( LLAMADA IDENT lista_expr )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:141:39: ^( LLAMADA IDENT lista_expr )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LLAMADA, "LLAMADA"), root_1);

                    adaptor.AddChild(root_1, stream_IDENT.Next());
                    adaptor.AddChild(root_1, stream_lista_expr.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;
    }
Ejemplo n.º 7
0
    // throws RecognitionException [1]
    // $ANTLR start lista_expr
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:1: lista_expr : (lista+= expresion ( ',' lista+= expresion )* -> ^( LISTAEXPRESIONES ( $lista)* ) | -> ^( LISTAEXPRESIONES ) );
    public lista_expr_return lista_expr()
    {
        lista_expr_return retval = new lista_expr_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken char_literal97 = null;
        IList list_lista = null;
        RuleReturnScope lista = null;
        FkvmAST char_literal97_tree=null;
        RewriteRuleTokenStream stream_31 = new RewriteRuleTokenStream(adaptor,"token 31");
        RewriteRuleSubtreeStream stream_expresion = new RewriteRuleSubtreeStream(adaptor,"rule expresion");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:12: (lista+= expresion ( ',' lista+= expresion )* -> ^( LISTAEXPRESIONES ( $lista)* ) | -> ^( LISTAEXPRESIONES ) )
            int alt20 = 2;
            int LA20_0 = input.LA(1);

            if ( ((LA20_0 >= IDENT && LA20_0 <= LIT_LOGICO) || LA20_0 == 25 || (LA20_0 >= 50 && LA20_0 <= 51) || LA20_0 == 54) )
            {
                alt20 = 1;
            }
            else if ( (LA20_0 == 26) )
            {
                alt20 = 2;
            }
            else
            {
                NoViableAltException nvae_d20s0 =
                    new NoViableAltException("143:1: lista_expr : (lista+= expresion ( ',' lista+= expresion )* -> ^( LISTAEXPRESIONES ( $lista)* ) | -> ^( LISTAEXPRESIONES ) );", 20, 0, input);

                throw nvae_d20s0;
            }
            switch (alt20)
            {
                case 1 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:14: lista+= expresion ( ',' lista+= expresion )*
                    {
                        PushFollow(FOLLOW_expresion_in_lista_expr851);
                        lista = expresion();
                        followingStackPointer_--;

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

                        // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:31: ( ',' lista+= expresion )*
                        do
                        {
                            int alt19 = 2;
                            int LA19_0 = input.LA(1);

                            if ( (LA19_0 == 31) )
                            {
                                alt19 = 1;
                            }

                            switch (alt19)
                            {
                                case 1 :
                                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:32: ',' lista+= expresion
                                    {
                                        char_literal97 = (IToken)input.LT(1);
                                        Match(input,31,FOLLOW_31_in_lista_expr854);
                                        stream_31.Add(char_literal97);

                                        PushFollow(FOLLOW_expresion_in_lista_expr858);
                                        lista = expresion();
                                        followingStackPointer_--;

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

                                    }
                                    break;

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

                        loop19:
                            ;	// Stops C# compiler whinging that label 'loop19' 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();
                        // 143:55: -> ^( LISTAEXPRESIONES ( $lista)* )
                        {
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:143:58: ^( LISTAEXPRESIONES ( $lista)* )
                            {
                            FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                            root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTAEXPRESIONES, "LISTAEXPRESIONES"), root_1);

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

                            }
                            stream_lista.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                    }
                    break;
                case 2 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:144:15:
                    {

                        // AST REWRITE
                        // elements:
                        // 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();
                        // 144:15: -> ^( LISTAEXPRESIONES )
                        {
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:144:18: ^( LISTAEXPRESIONES )
                            {
                            FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                            root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTAEXPRESIONES, "LISTAEXPRESIONES"), root_1);

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                    }
                    break;

            }
            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;
    }
Ejemplo n.º 8
0
    // throws RecognitionException [1]
    // $ANTLR start lista_decl
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:1: lista_decl : (ld+= decl ( ',' ld+= decl )* -> ^( LISTAPARAMETROS ( $ld)* ) | -> ^( LISTAPARAMETROS ) );
    public lista_decl_return lista_decl()
    {
        lista_decl_return retval = new lista_decl_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken char_literal27 = null;
        IList list_ld = null;
        RuleReturnScope ld = null;
        FkvmAST char_literal27_tree=null;
        RewriteRuleTokenStream stream_31 = new RewriteRuleTokenStream(adaptor,"token 31");
        RewriteRuleSubtreeStream stream_decl = new RewriteRuleSubtreeStream(adaptor,"rule decl");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:12: (ld+= decl ( ',' ld+= decl )* -> ^( LISTAPARAMETROS ( $ld)* ) | -> ^( LISTAPARAMETROS ) )
            int alt5 = 2;
            int LA5_0 = input.LA(1);

            if ( ((LA5_0 >= 37 && LA5_0 <= 41)) )
            {
                alt5 = 1;
            }
            else if ( (LA5_0 == 26) )
            {
                alt5 = 2;
            }
            else
            {
                NoViableAltException nvae_d5s0 =
                    new NoViableAltException("92:1: lista_decl : (ld+= decl ( ',' ld+= decl )* -> ^( LISTAPARAMETROS ( $ld)* ) | -> ^( LISTAPARAMETROS ) );", 5, 0, input);

                throw nvae_d5s0;
            }
            switch (alt5)
            {
                case 1 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:14: ld+= decl ( ',' ld+= decl )*
                    {
                        PushFollow(FOLLOW_decl_in_lista_decl326);
                        ld = decl();
                        followingStackPointer_--;

                        stream_decl.Add(ld.Tree);
                        if (list_ld == null) list_ld = new ArrayList();
                        list_ld.Add(ld);

                        // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:23: ( ',' ld+= decl )*
                        do
                        {
                            int alt4 = 2;
                            int LA4_0 = input.LA(1);

                            if ( (LA4_0 == 31) )
                            {
                                alt4 = 1;
                            }

                            switch (alt4)
                            {
                                case 1 :
                                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:24: ',' ld+= decl
                                    {
                                        char_literal27 = (IToken)input.LT(1);
                                        Match(input,31,FOLLOW_31_in_lista_decl329);
                                        stream_31.Add(char_literal27);

                                        PushFollow(FOLLOW_decl_in_lista_decl333);
                                        ld = decl();
                                        followingStackPointer_--;

                                        stream_decl.Add(ld.Tree);
                                        if (list_ld == null) list_ld = new ArrayList();
                                        list_ld.Add(ld);

                                    }
                                    break;

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

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

                        // AST REWRITE
                        // elements:          ld
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:  ld
                        retval.tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));
                        RewriteRuleSubtreeStream stream_ld = new RewriteRuleSubtreeStream(adaptor, "token ld", list_ld);
                        root_0 = (FkvmAST)adaptor.GetNilNode();
                        // 92:39: -> ^( LISTAPARAMETROS ( $ld)* )
                        {
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:42: ^( LISTAPARAMETROS ( $ld)* )
                            {
                            FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                            root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTAPARAMETROS, "LISTAPARAMETROS"), root_1);

                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:92:60: ( $ld)*
                            while ( stream_ld.HasNext() )
                            {
                                adaptor.AddChild(root_1, ((ParserRuleReturnScope)stream_ld.Next()).Tree);

                            }
                            stream_ld.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                    }
                    break;
                case 2 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:93:14:
                    {

                        // AST REWRITE
                        // elements:
                        // 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();
                        // 93:14: -> ^( LISTAPARAMETROS )
                        {
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:93:17: ^( LISTAPARAMETROS )
                            {
                            FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                            root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(LISTAPARAMETROS, "LISTAPARAMETROS"), root_1);

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                    }
                    break;

            }
            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;
    }
Ejemplo n.º 9
0
    // throws RecognitionException [1]
    // $ANTLR start inst_decl
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:85:1: inst_decl : tipo IDENT ';' -> ^( DECLARACION tipo IDENT ) ;
    public inst_decl_return inst_decl()
    {
        inst_decl_return retval = new inst_decl_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken IDENT25 = null;
        IToken char_literal26 = null;
        tipo_return tipo24 = null;

        FkvmAST IDENT25_tree=null;
        FkvmAST char_literal26_tree=null;
        RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT");
        RewriteRuleTokenStream stream_27 = new RewriteRuleTokenStream(adaptor,"token 27");
        RewriteRuleSubtreeStream stream_tipo = new RewriteRuleSubtreeStream(adaptor,"rule tipo");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:85:11: ( tipo IDENT ';' -> ^( DECLARACION tipo IDENT ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:85:13: tipo IDENT ';'
            {
                PushFollow(FOLLOW_tipo_in_inst_decl295);
                tipo24 = tipo();
                followingStackPointer_--;

                stream_tipo.Add(tipo24.Tree);
                IDENT25 = (IToken)input.LT(1);
                Match(input,IDENT,FOLLOW_IDENT_in_inst_decl297);
                stream_IDENT.Add(IDENT25);

                char_literal26 = (IToken)input.LT(1);
                Match(input,27,FOLLOW_27_in_inst_decl299);
                stream_27.Add(char_literal26);

                     if(!symtable.ContainsKey(IDENT25.Text))
                     {
                           symtable.Add(IDENT25.Text, new Symbol(input.ToString(tipo24.start,tipo24.stop), numVars++));
                     }

                // 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();
                // 90:8: -> ^( DECLARACION tipo IDENT )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:90:11: ^( DECLARACION tipo IDENT )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(DECLARACION, "DECLARACION"), 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;
    }
Ejemplo n.º 10
0
    // throws RecognitionException [1]
    // $ANTLR start inst_asig
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:1: inst_asig : IDENT '=' expresion ';' -> ^( ASIGNACION IDENT expresion ) ;
    public inst_asig_return inst_asig()
    {
        inst_asig_return retval = new inst_asig_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken IDENT30 = null;
        IToken char_literal31 = null;
        IToken char_literal33 = null;
        expresion_return expresion32 = null;

        FkvmAST IDENT30_tree=null;
        FkvmAST char_literal31_tree=null;
        FkvmAST char_literal33_tree=null;
        RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT");
        RewriteRuleTokenStream stream_32 = new RewriteRuleTokenStream(adaptor,"token 32");
        RewriteRuleTokenStream stream_27 = new RewriteRuleTokenStream(adaptor,"token 27");
        RewriteRuleSubtreeStream stream_expresion = new RewriteRuleSubtreeStream(adaptor,"rule expresion");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:11: ( IDENT '=' expresion ';' -> ^( ASIGNACION IDENT expresion ) )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:13: IDENT '=' expresion ';'
            {
                IDENT30 = (IToken)input.LT(1);
                Match(input,IDENT,FOLLOW_IDENT_in_inst_asig406);
                stream_IDENT.Add(IDENT30);

                char_literal31 = (IToken)input.LT(1);
                Match(input,32,FOLLOW_32_in_inst_asig408);
                stream_32.Add(char_literal31);

                PushFollow(FOLLOW_expresion_in_inst_asig410);
                expresion32 = expresion();
                followingStackPointer_--;

                stream_expresion.Add(expresion32.Tree);
                char_literal33 = (IToken)input.LT(1);
                Match(input,27,FOLLOW_27_in_inst_asig412);
                stream_27.Add(char_literal33);

                // AST REWRITE
                // elements:          IDENT, expresion
                // 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();
                // 98:37: -> ^( ASIGNACION IDENT expresion )
                {
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:40: ^( ASIGNACION IDENT expresion )
                    {
                    FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                    root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(ASIGNACION, "ASIGNACION"), root_1);

                    adaptor.AddChild(root_1, stream_IDENT.Next());
                    adaptor.AddChild(root_1, stream_expresion.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;
    }
Ejemplo n.º 11
0
    // throws RecognitionException [1]
    // $ANTLR start expMenos
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:131:1: expMenos : ( '-' expNo -> ^( MENOSUNARIO expNo ) | ( '+' )? expNo -> expNo );
    public expMenos_return expMenos()
    {
        expMenos_return retval = new expMenos_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken char_literal81 = null;
        IToken char_literal83 = null;
        expNo_return expNo82 = null;

        expNo_return expNo84 = null;

        FkvmAST char_literal81_tree=null;
        FkvmAST char_literal83_tree=null;
        RewriteRuleTokenStream stream_51 = new RewriteRuleTokenStream(adaptor,"token 51");
        RewriteRuleTokenStream stream_50 = new RewriteRuleTokenStream(adaptor,"token 50");
        RewriteRuleSubtreeStream stream_expNo = new RewriteRuleSubtreeStream(adaptor,"rule expNo");
        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:131:10: ( '-' expNo -> ^( MENOSUNARIO expNo ) | ( '+' )? expNo -> expNo )
            int alt16 = 2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0 == 51) )
            {
                alt16 = 1;
            }
            else if ( ((LA16_0 >= IDENT && LA16_0 <= LIT_LOGICO) || LA16_0 == 25 || LA16_0 == 50 || LA16_0 == 54) )
            {
                alt16 = 2;
            }
            else
            {
                NoViableAltException nvae_d16s0 =
                    new NoViableAltException("131:1: expMenos : ( '-' expNo -> ^( MENOSUNARIO expNo ) | ( '+' )? expNo -> expNo );", 16, 0, input);

                throw nvae_d16s0;
            }
            switch (alt16)
            {
                case 1 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:131:12: '-' expNo
                    {
                        char_literal81 = (IToken)input.LT(1);
                        Match(input,51,FOLLOW_51_in_expMenos732);
                        stream_51.Add(char_literal81);

                        PushFollow(FOLLOW_expNo_in_expMenos734);
                        expNo82 = expNo();
                        followingStackPointer_--;

                        stream_expNo.Add(expNo82.Tree);

                        // AST REWRITE
                        // elements:          expNo
                        // 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();
                        // 131:22: -> ^( MENOSUNARIO expNo )
                        {
                            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:131:25: ^( MENOSUNARIO expNo )
                            {
                            FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode();
                            root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(MENOSUNARIO, "MENOSUNARIO"), root_1);

                            adaptor.AddChild(root_1, stream_expNo.Next());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                    }
                    break;
                case 2 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:132:12: ( '+' )? expNo
                    {
                        // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:132:12: ( '+' )?
                        int alt15 = 2;
                        int LA15_0 = input.LA(1);

                        if ( (LA15_0 == 50) )
                        {
                            alt15 = 1;
                        }
                        switch (alt15)
                        {
                            case 1 :
                                // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:132:12: '+'
                                {
                                    char_literal83 = (IToken)input.LT(1);
                                    Match(input,50,FOLLOW_50_in_expMenos756);
                                    stream_50.Add(char_literal83);

                                }
                                break;

                        }

                        PushFollow(FOLLOW_expNo_in_expMenos759);
                        expNo84 = expNo();
                        followingStackPointer_--;

                        stream_expNo.Add(expNo84.Tree);

                        // AST REWRITE
                        // elements:          expNo
                        // 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();
                        // 132:23: -> expNo
                        {
                            adaptor.AddChild(root_0, stream_expNo.Next());

                        }

                    }
                    break;

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