+/* method parser#ReduceAction703#action for (self: ReduceAction703, Parser) */
+void parser__ReduceAction703__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist15 /* var nodearraylist15: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var11 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var12 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var13 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var14 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var15 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var16 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
+short int var17 /* : Bool */;
+int cltype;
+int idtype;
+val* var_listnode3 /* var listnode3: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var21 /* : Array[Object] */;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var22 /* : Bool */;
+int cltype23;
+int idtype24;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var25 /* : Bool */;
+int cltype26;
+int idtype27;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var28 /* : Bool */;
+int cltype29;
+int idtype30;
+val* var_plabelnode8 /* var plabelnode8: nullable Object */;
+short int var31 /* : Bool */;
+int cltype32;
+int idtype33;
+val* var34 /* : AForExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
+long var35 /* : Int */;
+long var36 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist15 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist14 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist13 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist12 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist11 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist10 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist9 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var9;
+var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var10;
+var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var11;
+var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var12;
+var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var13;
+var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var14;
+var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var15;
+var16 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
+var_listnode4 = var16;
+var_tkwfornode2 = var_nodearraylist1;
+/* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
+cltype = type_nullable_parser_nodes__TKwfor.color;
+idtype = type_nullable_parser_nodes__TKwfor.id;
+if(var_tkwfornode2 == NULL) {
+var17 = 1;
+} else {
+if(cltype >= var_tkwfornode2->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_tkwfornode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26202);
+show_backtrace(1);
+}
+var_listnode3 = var_nodearraylist5;
+/* <var_listnode3:nullable Object> isa Array[Object] */
+cltype19 = type_array__Arraykernel__Object.color;
+idtype20 = type_array__Arraykernel__Object.id;
+if(var_listnode3 == NULL) {
+var18 = 0;
+} else {
+if(cltype19 >= var_listnode3->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_listnode3->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26204);
+show_backtrace(1);
+}
+var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction703>*/;
+var_listnode4 = var21;
+var_pexprnode5 = var_nodearraylist11;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype23 = type_nullable_parser_nodes__AExpr.color;
+idtype24 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var22 = 1;
+} else {
+if(cltype23 >= var_pexprnode5->type->table_size) {
+var22 = 0;
+} else {
+var22 = var_pexprnode5->type->type_table[cltype23] == idtype24;
+}
+}
+if (!var22) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26207);
+show_backtrace(1);
+}
+var_tkwdonode6 = var_nodearraylist13;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype26 = type_nullable_parser_nodes__TKwdo.color;
+idtype27 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var25 = 1;
+} else {
+if(cltype26 >= var_tkwdonode6->type->table_size) {
+var25 = 0;
+} else {
+var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27;
+}
+}
+if (!var25) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26209);
+show_backtrace(1);
+}
+var_pexprnode7 = var_nodearraylist14;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype29 = type_nullable_parser_nodes__AExpr.color;
+idtype30 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var28 = 1;
+} else {
+if(cltype29 >= var_pexprnode7->type->table_size) {
+var28 = 0;
+} else {
+var28 = var_pexprnode7->type->type_table[cltype29] == idtype30;
+}
+}
+if (!var28) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26211);
+show_backtrace(1);
+}
+var_plabelnode8 = var_nodearraylist15;
+/* <var_plabelnode8:nullable Object> isa nullable ALabel */
+cltype32 = type_nullable_parser_nodes__ALabel.color;
+idtype33 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode8 == NULL) {
+var31 = 1;
+} else {
+if(cltype32 >= var_plabelnode8->type->table_size) {
+var31 = 0;
+} else {
+var31 = var_plabelnode8->type->type_table[cltype32] == idtype33;
+}
+}
+if (!var31) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26213);
+show_backtrace(1);
+}
+var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var34, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on <var34:AForExpr>*/;
+var_pexprnode1 = var34;
+var_node_list = var_pexprnode1;
+var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction703> */
+var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction703#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction703__action(val* self, val* p0) {
+parser__ReduceAction703__action(self, p0);
+RET_LABEL:;
+}