// throws RecognitionException [1] // $ANTLR start expresion // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:99:1: expresion : ( ^(opc= opComparacion e1= expresion e2= expresion ) -> op_comparacion(opc=opercop=$opc.ste1=$e1.ste2=$e2.stet1=nEtiqueta++) | ^(opa= opAritmetico e1= expresion e2= expresion ) -> op_aritmetico(op=opere1=$e1.ste2=$e2.st) | ^( MENOSUNARIO e1= expresion ) -> opmenosunario(e1=$e1.st) | ^( '!' e1= expresion ) -> opno(e1=$e1.st) | IDENT -> ident(op=opernv=$IDENT.symbol.numvar) | literal -> {$literal.st} | llamada -> {$llamada.st}); public expresion_return expresion() { expresion_return retval = new expresion_return(); retval.start = input.LT(1); FkvmAST IDENT22 = null; opComparacion_return opc = null; expresion_return e1 = null; expresion_return e2 = null; opAritmetico_return opa = null; literal_return literal23 = null; llamada_return llamada24 = null; string oper = ""; string operc = ""; try { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:104:11: ( ^(opc= opComparacion e1= expresion e2= expresion ) -> op_comparacion(opc=opercop=$opc.ste1=$e1.ste2=$e2.stet1=nEtiqueta++) | ^(opa= opAritmetico e1= expresion e2= expresion ) -> op_aritmetico(op=opere1=$e1.ste2=$e2.st) | ^( MENOSUNARIO e1= expresion ) -> opmenosunario(e1=$e1.st) | ^( '!' e1= expresion ) -> opno(e1=$e1.st) | IDENT -> ident(op=opernv=$IDENT.symbol.numvar) | literal -> {$literal.st} | llamada -> {$llamada.st}) int alt6 = 7; switch ( input.LA(1) ) { case 44: case 45: case 46: case 47: case 48: case 49: { alt6 = 1; } break; case 50: case 51: case 52: case 53: { alt6 = 2; } break; case MENOSUNARIO: { alt6 = 3; } break; case 54: { alt6 = 4; } break; case IDENT: { alt6 = 5; } break; case LIT_ENTERO: case LIT_REAL: case LIT_CADENA: case LIT_LOGICO: { alt6 = 6; } break; case LLAMADA: { alt6 = 7; } break; default: NoViableAltException nvae_d6s0 = new NoViableAltException("99:1: expresion : ( ^(opc= opComparacion e1= expresion e2= expresion ) -> op_comparacion(opc=opercop=$opc.ste1=$e1.ste2=$e2.stet1=nEtiqueta++) | ^(opa= opAritmetico e1= expresion e2= expresion ) -> op_aritmetico(op=opere1=$e1.ste2=$e2.st) | ^( MENOSUNARIO e1= expresion ) -> opmenosunario(e1=$e1.st) | ^( '!' e1= expresion ) -> opno(e1=$e1.st) | IDENT -> ident(op=opernv=$IDENT.symbol.numvar) | literal -> {$literal.st} | llamada -> {$llamada.st});", 6, 0, input); throw nvae_d6s0; } switch (alt6) { case 1 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:104:13: ^(opc= opComparacion e1= expresion e2= expresion ) { PushFollow(FOLLOW_opComparacion_in_expresion710); opc = opComparacion(); followingStackPointer_--; Match(input, Token.DOWN, null); PushFollow(FOLLOW_expresion_in_expresion714); e1 = expresion(); followingStackPointer_--; PushFollow(FOLLOW_expresion_in_expresion718); e2 = expresion(); followingStackPointer_--; Match(input, Token.UP, null); operc = operadorComparacion(opc.opSecType); // TEMPLATE REWRITE // 105:14: -> op_comparacion(opc=opercop=$opc.ste1=$e1.ste2=$e2.stet1=nEtiqueta++) { retval.st = templateLib.GetInstanceOf("op_comparacion", new STAttrMap().Add("opc", operc).Add("op", opc.st).Add("e1", e1.st).Add("e2", e2.st).Add("et1", nEtiqueta++)); } } break; case 2 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:106:13: ^(opa= opAritmetico e1= expresion e2= expresion ) { PushFollow(FOLLOW_opAritmetico_in_expresion780); opa = opAritmetico(); followingStackPointer_--; Match(input, Token.DOWN, null); PushFollow(FOLLOW_expresion_in_expresion784); e1 = expresion(); followingStackPointer_--; PushFollow(FOLLOW_expresion_in_expresion788); e2 = expresion(); followingStackPointer_--; Match(input, Token.UP, null); oper = traducirTipo(opa.opType)+opa.st.ToString(); // TEMPLATE REWRITE // 107:14: -> op_aritmetico(op=opere1=$e1.ste2=$e2.st) { retval.st = templateLib.GetInstanceOf("op_aritmetico", new STAttrMap().Add("op", oper).Add("e1", e1.st).Add("e2", e2.st)); } } break; case 3 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:108:13: ^( MENOSUNARIO e1= expresion ) { Match(input,MENOSUNARIO,FOLLOW_MENOSUNARIO_in_expresion839); Match(input, Token.DOWN, null); PushFollow(FOLLOW_expresion_in_expresion843); e1 = expresion(); followingStackPointer_--; Match(input, Token.UP, null); // TEMPLATE REWRITE // 108:41: -> opmenosunario(e1=$e1.st) { retval.st = templateLib.GetInstanceOf("opmenosunario", new STAttrMap().Add("e1", e1.st)); } } break; case 4 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:109:13: ^( '!' e1= expresion ) { Match(input,54,FOLLOW_54_in_expresion868); Match(input, Token.DOWN, null); PushFollow(FOLLOW_expresion_in_expresion872); e1 = expresion(); followingStackPointer_--; Match(input, Token.UP, null); // TEMPLATE REWRITE // 109:33: -> opno(e1=$e1.st) { retval.st = templateLib.GetInstanceOf("opno", new STAttrMap().Add("e1", e1.st)); } } break; case 5 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:110:13: IDENT { IDENT22 = (FkvmAST)input.LT(1); Match(input,IDENT,FOLLOW_IDENT_in_expresion896); oper = traducirTipo(IDENT22.expType)+"load"; // TEMPLATE REWRITE // 110:65: -> ident(op=opernv=$IDENT.symbol.numvar) { retval.st = templateLib.GetInstanceOf("ident", new STAttrMap().Add("op", oper).Add("nv", IDENT22.symbol.numvar)); } } break; case 6 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:111:13: literal { PushFollow(FOLLOW_literal_in_expresion926); literal23 = literal(); followingStackPointer_--; // TEMPLATE REWRITE // 111:21: -> {$literal.st} { retval.st = literal23.st; } } break; case 7 : // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVMGen.g:112:13: llamada { PushFollow(FOLLOW_llamada_in_expresion944); llamada24 = llamada(); followingStackPointer_--; // TEMPLATE REWRITE // 112:21: -> {$llamada.st} { retval.st = llamada24.st; } } break; } } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// throws RecognitionException [1] // $ANTLR start expresion // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:116:1: expresion : expOr ; public expresion_return expresion() { expresion_return retval = new expresion_return(); retval.start = input.LT(1); FkvmAST root_0 = null; expOr_return expOr58 = null; try { // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:116:11: ( expOr ) // D:\\Proyectos\\ProyectosVS\\FKVM\\FKVM\\src\\antlr\\FKVM.g:116:13: expOr { root_0 = (FkvmAST)adaptor.GetNilNode(); PushFollow(FOLLOW_expOr_in_expresion598); expOr58 = expOr(); followingStackPointer_--; adaptor.AddChild(root_0, expOr58.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; }