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