// throws RecognitionException [1] // $ANTLR start inst_asig // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:67:1: inst_asig : ^( ASIGNACION IDENT expresion ) -> asignacion(op=opernv=$IDENT.symbol.numvarval=$expresion.st); public inst_asig_return inst_asig() { inst_asig_return retval = new inst_asig_return(); retval.start = input.LT(1); FkvmAST ASIGNACION12 = null; FkvmAST IDENT13 = null; expresion_return expresion14 = null; string oper = ""; try { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:71:9: ( ^( ASIGNACION IDENT expresion ) -> asignacion(op=opernv=$IDENT.symbol.numvarval=$expresion.st)) // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:71:11: ^( ASIGNACION IDENT expresion ) { ASIGNACION12 = (FkvmAST)input.LT(1); Match(input,ASIGNACION,FOLLOW_ASIGNACION_in_inst_asig335); Match(input, Token.DOWN, null); IDENT13 = (FkvmAST)input.LT(1); Match(input,IDENT,FOLLOW_IDENT_in_inst_asig337); PushFollow(FOLLOW_expresion_in_inst_asig339); expresion14 = expresion(); followingStackPointer_--; Match(input, Token.UP, null); oper = traducirTipo(ASIGNACION12.expType)+"store"; // TEMPLATE REWRITE // 72:12: -> asignacion(op=opernv=$IDENT.symbol.numvarval=$expresion.st) { retval.st = templateLib.GetInstanceOf("asignacion", new STAttrMap().Add("op", oper).Add("nv", IDENT13.symbol.numvar).Add("val", expresion14.st)); } } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// throws RecognitionException [1] // $ANTLR start inst_asig // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:1: inst_asig : IDENT '=' expresion ';' -> ^( ASIGNACION IDENT expresion ) ; public inst_asig_return inst_asig() { inst_asig_return retval = new inst_asig_return(); retval.start = input.LT(1); FkvmAST root_0 = null; IToken IDENT30 = null; IToken char_literal31 = null; IToken char_literal33 = null; expresion_return expresion32 = null; FkvmAST IDENT30_tree=null; FkvmAST char_literal31_tree=null; FkvmAST char_literal33_tree=null; RewriteRuleTokenStream stream_IDENT = new RewriteRuleTokenStream(adaptor,"token IDENT"); RewriteRuleTokenStream stream_32 = new RewriteRuleTokenStream(adaptor,"token 32"); RewriteRuleTokenStream stream_27 = new RewriteRuleTokenStream(adaptor,"token 27"); RewriteRuleSubtreeStream stream_expresion = new RewriteRuleSubtreeStream(adaptor,"rule expresion"); try { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:11: ( IDENT '=' expresion ';' -> ^( ASIGNACION IDENT expresion ) ) // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:13: IDENT '=' expresion ';' { IDENT30 = (IToken)input.LT(1); Match(input,IDENT,FOLLOW_IDENT_in_inst_asig406); stream_IDENT.Add(IDENT30); char_literal31 = (IToken)input.LT(1); Match(input,32,FOLLOW_32_in_inst_asig408); stream_32.Add(char_literal31); PushFollow(FOLLOW_expresion_in_inst_asig410); expresion32 = expresion(); followingStackPointer_--; stream_expresion.Add(expresion32.Tree); char_literal33 = (IToken)input.LT(1); Match(input,27,FOLLOW_27_in_inst_asig412); stream_27.Add(char_literal33); // AST REWRITE // elements: IDENT, expresion // 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(); // 98:37: -> ^( ASIGNACION IDENT expresion ) { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:98:40: ^( ASIGNACION IDENT expresion ) { FkvmAST root_1 = (FkvmAST)adaptor.GetNilNode(); root_1 = (FkvmAST)adaptor.BecomeRoot(adaptor.Create(ASIGNACION, "ASIGNACION"), root_1); adaptor.AddChild(root_1, stream_IDENT.Next()); adaptor.AddChild(root_1, stream_expresion.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; }