Example #1
0
    // throws RecognitionException [1]
    // $ANTLR start inst_if
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:74:1: inst_if : ^( 'if' expresion isi= lista_instrucciones ielse= lista_instrucciones ) -> instif(cond=$expresion.stinstsi=$isi.stinstelse=$ielse.stet1=nEtiqueta++et2=nEtiqueta++);
    public inst_if_return inst_if()
    {
        inst_if_return retval = new inst_if_return();
        retval.start = input.LT(1);

        lista_instrucciones_return isi = null;

        lista_instrucciones_return ielse = null;

        expresion_return expresion15 = null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:74:9: ( ^( 'if' expresion isi= lista_instrucciones ielse= lista_instrucciones ) -> instif(cond=$expresion.stinstsi=$isi.stinstelse=$ielse.stet1=nEtiqueta++et2=nEtiqueta++))
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:74:11: ^( 'if' expresion isi= lista_instrucciones ielse= lista_instrucciones )
            {
                Match(input,33,FOLLOW_33_in_inst_if382);

                Match(input, Token.DOWN, null);
                PushFollow(FOLLOW_expresion_in_inst_if384);
                expresion15 = expresion();
                followingStackPointer_--;

                PushFollow(FOLLOW_lista_instrucciones_in_inst_if388);
                isi = lista_instrucciones();
                followingStackPointer_--;

                PushFollow(FOLLOW_lista_instrucciones_in_inst_if392);
                ielse = lista_instrucciones();
                followingStackPointer_--;

                Match(input, Token.UP, null);

                // TEMPLATE REWRITE
                // 75:9: -> instif(cond=$expresion.stinstsi=$isi.stinstelse=$ielse.stet1=nEtiqueta++et2=nEtiqueta++)
                {
                    retval.st = templateLib.GetInstanceOf("instif",
                  new STAttrMap().Add("cond", expresion15.st).Add("instsi", isi.st).Add("instelse", ielse.st).Add("et1", nEtiqueta++).Add("et2", nEtiqueta++));
                }

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
Example #2
0
    // throws RecognitionException [1]
    // $ANTLR start inst_if
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:100:1: inst_if : 'if' '(' expresion ')' '{' lista_instrucciones '}' else_otras ;
    public inst_if_return inst_if()
    {
        inst_if_return retval = new inst_if_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken string_literal34 = null;
        IToken char_literal35 = null;
        IToken char_literal37 = null;
        IToken char_literal38 = null;
        IToken char_literal40 = null;
        expresion_return expresion36 = null;

        lista_instrucciones_return lista_instrucciones39 = null;

        else_otras_return else_otras41 = null;

        FkvmAST string_literal34_tree=null;
        FkvmAST char_literal35_tree=null;
        FkvmAST char_literal37_tree=null;
        FkvmAST char_literal38_tree=null;
        FkvmAST char_literal40_tree=null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:100:9: ( 'if' '(' expresion ')' '{' lista_instrucciones '}' else_otras )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:100:11: 'if' '(' expresion ')' '{' lista_instrucciones '}' else_otras
            {
                root_0 = (FkvmAST)adaptor.GetNilNode();

                string_literal34 = (IToken)input.LT(1);
                Match(input,33,FOLLOW_33_in_inst_if430);
                string_literal34_tree = (FkvmAST)adaptor.Create(string_literal34);
                root_0 = (FkvmAST)adaptor.BecomeRoot(string_literal34_tree, root_0);

                char_literal35 = (IToken)input.LT(1);
                Match(input,25,FOLLOW_25_in_inst_if433);
                PushFollow(FOLLOW_expresion_in_inst_if436);
                expresion36 = expresion();
                followingStackPointer_--;

                adaptor.AddChild(root_0, expresion36.Tree);
                char_literal37 = (IToken)input.LT(1);
                Match(input,26,FOLLOW_26_in_inst_if438);
                char_literal38 = (IToken)input.LT(1);
                Match(input,29,FOLLOW_29_in_inst_if441);
                PushFollow(FOLLOW_lista_instrucciones_in_inst_if444);
                lista_instrucciones39 = lista_instrucciones();
                followingStackPointer_--;

                adaptor.AddChild(root_0, lista_instrucciones39.Tree);
                char_literal40 = (IToken)input.LT(1);
                Match(input,30,FOLLOW_30_in_inst_if446);
                PushFollow(FOLLOW_else_otras_in_inst_if449);
                else_otras41 = else_otras();
                followingStackPointer_--;

                adaptor.AddChild(root_0, else_otras41.Tree);

            }

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