Ejemplo n.º 1
0
    // throws RecognitionException [1]
    // $ANTLR start instruccion
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:55:1: instruccion : ( inst_decl -> {$inst_decl.st} | inst_asig -> {$inst_asig.st} | inst_if -> {$inst_if.st} | inst_while -> {$inst_while.st} | inst_return -> {$inst_return.st} | inst_expr -> {$inst_expr.st});
    public instruccion_return instruccion()
    {
        instruccion_return retval = new instruccion_return();
        retval.start = input.LT(1);

        inst_decl_return inst_decl3 = null;

        inst_asig_return inst_asig4 = null;

        inst_if_return inst_if5 = null;

        inst_while_return inst_while6 = null;

        inst_return_return inst_return7 = null;

        inst_expr_return inst_expr8 = null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:55:13: ( inst_decl -> {$inst_decl.st} | inst_asig -> {$inst_asig.st} | inst_if -> {$inst_if.st} | inst_while -> {$inst_while.st} | inst_return -> {$inst_return.st} | inst_expr -> {$inst_expr.st})
            int alt3 = 6;
            switch ( input.LA(1) )
            {
            case DECLARACION:
                {
                alt3 = 1;
                }
                break;
            case ASIGNACION:
                {
                alt3 = 2;
                }
                break;
            case 33:
                {
                alt3 = 3;
                }
                break;
            case 35:
                {
                alt3 = 4;
                }
                break;
            case 36:
                {
                alt3 = 5;
                }
                break;
            case MENOSUNARIO:
            case LLAMADA:
            case IDENT:
            case LIT_ENTERO:
            case LIT_REAL:
            case LIT_CADENA:
            case LIT_LOGICO:
            case 44:
            case 45:
            case 46:
            case 47:
            case 48:
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54:
                {
                alt3 = 6;
                }
                break;
                default:
                    NoViableAltException nvae_d3s0 =
                        new NoViableAltException("55:1: instruccion : ( inst_decl -> {$inst_decl.st} | inst_asig -> {$inst_asig.st} | inst_if -> {$inst_if.st} | inst_while -> {$inst_while.st} | inst_return -> {$inst_return.st} | inst_expr -> {$inst_expr.st});", 3, 0, input);

                    throw nvae_d3s0;
            }

            switch (alt3)
            {
                case 1 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:55:15: inst_decl
                    {
                        PushFollow(FOLLOW_inst_decl_in_instruccion187);
                        inst_decl3 = inst_decl();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 55:25: -> {$inst_decl.st}
                        {
                            retval.st = inst_decl3.st;
                        }

                    }
                    break;
                case 2 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:56:8: inst_asig
                    {
                        PushFollow(FOLLOW_inst_asig_in_instruccion201);
                        inst_asig4 = inst_asig();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 56:18: -> {$inst_asig.st}
                        {
                            retval.st = inst_asig4.st;
                        }

                    }
                    break;
                case 3 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:57:8: inst_if
                    {
                        PushFollow(FOLLOW_inst_if_in_instruccion214);
                        inst_if5 = inst_if();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 57:16: -> {$inst_if.st}
                        {
                            retval.st = inst_if5.st;
                        }

                    }
                    break;
                case 4 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:58:8: inst_while
                    {
                        PushFollow(FOLLOW_inst_while_in_instruccion227);
                        inst_while6 = inst_while();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 58:19: -> {$inst_while.st}
                        {
                            retval.st = inst_while6.st;
                        }

                    }
                    break;
                case 5 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:59:8: inst_return
                    {
                        PushFollow(FOLLOW_inst_return_in_instruccion240);
                        inst_return7 = inst_return();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 59:20: -> {$inst_return.st}
                        {
                            retval.st = inst_return7.st;
                        }

                    }
                    break;
                case 6 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:60:8: inst_expr
                    {
                        PushFollow(FOLLOW_inst_expr_in_instruccion253);
                        inst_expr8 = inst_expr();
                        followingStackPointer_--;

                        // TEMPLATE REWRITE
                        // 60:18: -> {$inst_expr.st}
                        {
                            retval.st = inst_expr8.st;
                        }

                    }
                    break;

            }
        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
Ejemplo n.º 2
0
    // throws RecognitionException [1]
    // $ANTLR start instruccion
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:76:1: instruccion : ( inst_decl | inst_asig | inst_if | inst_while | inst_return | inst_expr );
    public instruccion_return instruccion()
    {
        instruccion_return retval = new instruccion_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        inst_decl_return inst_decl16 = null;

        inst_asig_return inst_asig17 = null;

        inst_if_return inst_if18 = null;

        inst_while_return inst_while19 = null;

        inst_return_return inst_return20 = null;

        inst_expr_return inst_expr21 = null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:76:13: ( inst_decl | inst_asig | inst_if | inst_while | inst_return | inst_expr )
            int alt3 = 6;
            switch ( input.LA(1) )
            {
            case 37:
            case 38:
            case 39:
            case 40:
            case 41:
                {
                alt3 = 1;
                }
                break;
            case IDENT:
                {
                int LA3_2 = input.LA(2);

                if ( (LA3_2 == 32) )
                {
                    alt3 = 2;
                }
                else if ( (LA3_2 == 25 || LA3_2 == 27 || (LA3_2 >= 42 && LA3_2 <= 53)) )
                {
                    alt3 = 6;
                }
                else
                {
                    NoViableAltException nvae_d3s2 =
                        new NoViableAltException("76:1: instruccion : ( inst_decl | inst_asig | inst_if | inst_while | inst_return | inst_expr );", 3, 2, input);

                    throw nvae_d3s2;
                }
                }
                break;
            case 33:
                {
                alt3 = 3;
                }
                break;
            case 35:
                {
                alt3 = 4;
                }
                break;
            case 36:
                {
                alt3 = 5;
                }
                break;
            case LIT_ENTERO:
            case LIT_REAL:
            case LIT_CADENA:
            case LIT_LOGICO:
            case 25:
            case 50:
            case 51:
            case 54:
                {
                alt3 = 6;
                }
                break;
                default:
                    NoViableAltException nvae_d3s0 =
                        new NoViableAltException("76:1: instruccion : ( inst_decl | inst_asig | inst_if | inst_while | inst_return | inst_expr );", 3, 0, input);

                    throw nvae_d3s0;
            }

            switch (alt3)
            {
                case 1 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:76:15: inst_decl
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_decl_in_instruccion233);
                        inst_decl16 = inst_decl();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_decl16.Tree);

                    }
                    break;
                case 2 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:77:6: inst_asig
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_asig_in_instruccion240);
                        inst_asig17 = inst_asig();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_asig17.Tree);

                    }
                    break;
                case 3 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:78:6: inst_if
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_if_in_instruccion248);
                        inst_if18 = inst_if();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_if18.Tree);

                    }
                    break;
                case 4 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:79:6: inst_while
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_while_in_instruccion256);
                        inst_while19 = inst_while();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_while19.Tree);

                    }
                    break;
                case 5 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:80:6: inst_return
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_return_in_instruccion264);
                        inst_return20 = inst_return();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_return20.Tree);

                    }
                    break;
                case 6 :
                    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:81:6: inst_expr
                    {
                        root_0 = (FkvmAST)adaptor.GetNilNode();

                        PushFollow(FOLLOW_inst_expr_in_instruccion272);
                        inst_expr21 = inst_expr();
                        followingStackPointer_--;

                        adaptor.AddChild(root_0, inst_expr21.Tree);

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