示例#1
0
    // throws RecognitionException [1]
    // $ANTLR start inst_return
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:80:1: inst_return : ^(r= 'return' expresion ) -> return(op=operv=$expresion.st);
    public inst_return_return inst_return()
    {
        inst_return_return retval = new inst_return_return();
        retval.start = input.LT(1);

        FkvmAST r = null;
        expresion_return expresion17 = null;

        string oper = "";

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:84:9: ( ^(r= 'return' expresion ) -> return(op=operv=$expresion.st))
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:84:11: ^(r= 'return' expresion )
            {
                r = (FkvmAST)input.LT(1);
                Match(input,36,FOLLOW_36_in_inst_return498);

                Match(input, Token.DOWN, null);
                PushFollow(FOLLOW_expresion_in_inst_return500);
                expresion17 = expresion();
                followingStackPointer_--;

                Match(input, Token.UP, null);
                oper = traducirTipo(r.expType)+"ret";

                // TEMPLATE REWRITE
                // 84:76: -> return(op=operv=$expresion.st)
                {
                    retval.st = templateLib.GetInstanceOf("return",
                  new STAttrMap().Add("op", oper).Add("v", expresion17.st));
                }

            }

        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        }
        finally
        {
        }
        return retval;
    }
示例#2
0
    // throws RecognitionException [1]
    // $ANTLR start inst_return
    // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:107:1: inst_return : 'return' expresion ';' ;
    public inst_return_return inst_return()
    {
        inst_return_return retval = new inst_return_return();
        retval.start = input.LT(1);

        FkvmAST root_0 = null;

        IToken string_literal53 = null;
        IToken char_literal55 = null;
        expresion_return expresion54 = null;

        FkvmAST string_literal53_tree=null;
        FkvmAST char_literal55_tree=null;

        try
        {
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:107:13: ( 'return' expresion ';' )
            // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:107:15: 'return' expresion ';'
            {
                root_0 = (FkvmAST)adaptor.GetNilNode();

                string_literal53 = (IToken)input.LT(1);
                Match(input,36,FOLLOW_36_in_inst_return521);
                string_literal53_tree = (FkvmAST)adaptor.Create(string_literal53);
                root_0 = (FkvmAST)adaptor.BecomeRoot(string_literal53_tree, root_0);

                PushFollow(FOLLOW_expresion_in_inst_return524);
                expresion54 = expresion();
                followingStackPointer_--;

                adaptor.AddChild(root_0, expresion54.Tree);
                char_literal55 = (IToken)input.LT(1);
                Match(input,27,FOLLOW_27_in_inst_return526);

            }

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