// throws RecognitionException [1] // $ANTLR start inst_decl // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:65:1: inst_decl : ^( DECLARACION tipo IDENT ) -> declaracion(tipo=$tipo.textid=$IDENT.text); public inst_decl_return inst_decl() { inst_decl_return retval = new inst_decl_return(); retval.start = input.LT(1); FkvmAST IDENT11 = null; tipo_return tipo10 = null; try { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:65:11: ( ^( DECLARACION tipo IDENT ) -> declaracion(tipo=$tipo.textid=$IDENT.text)) // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:65:13: ^( DECLARACION tipo IDENT ) { Match(input,DECLARACION,FOLLOW_DECLARACION_in_inst_decl293); Match(input, Token.DOWN, null); PushFollow(FOLLOW_tipo_in_inst_decl295); tipo10 = tipo(); followingStackPointer_--; IDENT11 = (FkvmAST)input.LT(1); Match(input,IDENT,FOLLOW_IDENT_in_inst_decl297); Match(input, Token.UP, null); // TEMPLATE REWRITE // 65:39: -> declaracion(tipo=$tipo.textid=$IDENT.text) { retval.st = templateLib.GetInstanceOf("declaracion", new STAttrMap().Add("tipo", input.TokenStream.ToString( input.TreeAdaptor.GetTokenStartIndex(tipo10.start), input.TreeAdaptor.GetTokenStopIndex(tipo10.start) )).Add("id", IDENT11.Text)); } } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// 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; }