use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / parser.sep.14.c
diff --git a/c_src/parser.sep.14.c b/c_src/parser.sep.14.c
new file mode 100644 (file)
index 0000000..a38d12f
--- /dev/null
@@ -0,0 +1,9939 @@
+#include "parser.sep.0.h"
+/* method parser#ReduceAction654#action for (self: ReduceAction654, Parser) */
+void parser__ReduceAction654__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ASuperExpr */;
+val* var8 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
+long var9 /* : Int */;
+long var10 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_tkwsupernode3 = var_nodearraylist1;
+/* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
+cltype = type_nullable_parser_nodes__TKwsuper.color;
+idtype = type_nullable_parser_nodes__TKwsuper.id;
+if(var_tkwsupernode3 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwsupernode3->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwsupernode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25414);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist2;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype5 = type_nullable_parser_nodes__AExprs.color;
+idtype6 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pexprsnode4->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pexprsnode4->type->type_table[cltype5] == idtype6;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25416);
+exit(1);
+}
+var7 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
+var8 = NULL;
+((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var7, var8, var_tkwsupernode3, var_pexprsnode4) /* init_asuperexpr on <var7:ASuperExpr>*/;
+CHECK_NEW_parser_nodes__ASuperExpr(var7);
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction654> */
+var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction654#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction654__action(val* self, val* p0) {
+parser__ReduceAction654__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */
+void parser__ReduceAction655__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : Array[Object] */;
+val* var_listnode3 /* var listnode3: Array[Object] */;
+val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var6 /* : AQualified */;
+val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
+val* var_tkwsupernode5 /* var tkwsupernode5: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var13 /* : ASuperExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
+long var14 /* : Int */;
+long var15 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var4 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
+CHECK_NEW_array__Array(var4);
+var_listnode3 = var4;
+var_tclassidnode4 = var_nodearraylist1;
+/* <var_tclassidnode4:nullable Object> isa nullable TClassid */
+cltype = type_nullable_parser_nodes__TClassid.color;
+idtype = type_nullable_parser_nodes__TClassid.id;
+if(var_tclassidnode4 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tclassidnode4->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tclassidnode4->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25436);
+exit(1);
+}
+var6 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
+((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var6, var_listnode3, var_tclassidnode4) /* init_aqualified on <var6:AQualified>*/;
+CHECK_NEW_parser_nodes__AQualified(var6);
+var_pqualifiednode2 = var6;
+var_tkwsupernode5 = var_nodearraylist2;
+/* <var_tkwsupernode5:nullable Object> isa nullable TKwsuper */
+cltype8 = type_nullable_parser_nodes__TKwsuper.color;
+idtype9 = type_nullable_parser_nodes__TKwsuper.id;
+if(var_tkwsupernode5 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tkwsupernode5->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwsupernode5->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25442);
+exit(1);
+}
+var_pexprsnode6 = var_nodearraylist3;
+/* <var_pexprsnode6:nullable Object> isa nullable AExprs */
+cltype11 = type_nullable_parser_nodes__AExprs.color;
+idtype12 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode6 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprsnode6->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprsnode6->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25444);
+exit(1);
+}
+var13 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
+((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var13, var_pqualifiednode2, var_tkwsupernode5, var_pexprsnode6) /* init_asuperexpr on <var13:ASuperExpr>*/;
+CHECK_NEW_parser_nodes__ASuperExpr(var13);
+var_pexprnode1 = var13;
+var_node_list = var_pexprnode1;
+var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction655> */
+var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction655#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) {
+parser__ReduceAction655__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */
+void parser__ReduceAction656__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_listnode3 /* var listnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var7 /* : Array[Object] */;
+val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var11 /* : AQualified */;
+val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
+val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : ASuperExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
+CHECK_NEW_array__Array(var5);
+var_listnode4 = var5;
+var_listnode3 = var_nodearraylist1;
+/* <var_listnode3:nullable Object> isa Array[Object] */
+cltype = type_array__Arraykernel__Object.color;
+idtype = type_array__Arraykernel__Object.id;
+if(var_listnode3 == NULL) {
+var6 = 0;
+} else {
+if(cltype >= var_listnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_listnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25465);
+exit(1);
+}
+var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction656>*/;
+var_listnode4 = var7;
+var_tclassidnode5 = var_nodearraylist2;
+/* <var_tclassidnode5:nullable Object> isa nullable TClassid */
+cltype9 = type_nullable_parser_nodes__TClassid.color;
+idtype10 = type_nullable_parser_nodes__TClassid.id;
+if(var_tclassidnode5 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tclassidnode5->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tclassidnode5->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25468);
+exit(1);
+}
+var11 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
+((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var11, var_listnode4, var_tclassidnode5) /* init_aqualified on <var11:AQualified>*/;
+CHECK_NEW_parser_nodes__AQualified(var11);
+var_pqualifiednode2 = var11;
+var_tkwsupernode6 = var_nodearraylist3;
+/* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
+cltype13 = type_nullable_parser_nodes__TKwsuper.color;
+idtype14 = type_nullable_parser_nodes__TKwsuper.id;
+if(var_tkwsupernode6 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tkwsupernode6->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tkwsupernode6->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25474);
+exit(1);
+}
+var_pexprsnode7 = var_nodearraylist4;
+/* <var_pexprsnode7:nullable Object> isa nullable AExprs */
+cltype16 = type_nullable_parser_nodes__AExprs.color;
+idtype17 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode7 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprsnode7->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprsnode7->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25476);
+exit(1);
+}
+var18 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
+((void (*)(val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var18, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var18:ASuperExpr>*/;
+CHECK_NEW_parser_nodes__ASuperExpr(var18);
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction656> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction656#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) {
+parser__ReduceAction656__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction657#action for (self: ReduceAction657, Parser) */
+void parser__ReduceAction657__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_listnode3 /* var listnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var6 /* : Array[Object] */;
+val* var7 /* : AQualified */;
+val* var8 /* : null */;
+val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
+val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : ASuperExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var4 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
+CHECK_NEW_array__Array(var4);
+var_listnode4 = var4;
+var_listnode3 = var_nodearraylist1;
+/* <var_listnode3:nullable Object> isa Array[Object] */
+cltype = type_array__Arraykernel__Object.color;
+idtype = type_array__Arraykernel__Object.id;
+if(var_listnode3 == NULL) {
+var5 = 0;
+} else {
+if(cltype >= var_listnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_listnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25496);
+exit(1);
+}
+var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction657>*/;
+var_listnode4 = var6;
+var7 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
+var8 = NULL;
+((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var7, var_listnode4, var8) /* init_aqualified on <var7:AQualified>*/;
+CHECK_NEW_parser_nodes__AQualified(var7);
+var_pqualifiednode2 = var7;
+var_tkwsupernode6 = var_nodearraylist2;
+/* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
+cltype10 = type_nullable_parser_nodes__TKwsuper.color;
+idtype11 = type_nullable_parser_nodes__TKwsuper.id;
+if(var_tkwsupernode6 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tkwsupernode6->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwsupernode6->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25503);
+exit(1);
+}
+var_pexprsnode7 = var_nodearraylist3;
+/* <var_pexprsnode7:nullable Object> isa nullable AExprs */
+cltype13 = type_nullable_parser_nodes__AExprs.color;
+idtype14 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode7 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprsnode7->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprsnode7->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25505);
+exit(1);
+}
+var15 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
+((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var15, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var15:ASuperExpr>*/;
+CHECK_NEW_parser_nodes__ASuperExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction657> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction657#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction657__action(val* self, val* p0) {
+parser__ReduceAction657__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction658#action for (self: ReduceAction658, Parser) */
+void parser__ReduceAction658__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var13 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var14 /* : Int */;
+long var15 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25526);
+exit(1);
+}
+var_tkwinitnode3 = var_nodearraylist4;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype8 = type_nullable_parser_nodes__TKwinit.color;
+idtype9 = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tkwinitnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25528);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist5;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype11 = type_nullable_parser_nodes__AExprs.color;
+idtype12 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprsnode4->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25530);
+exit(1);
+}
+var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var13:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var13);
+var_pexprnode1 = var13;
+var_node_list = var_pexprnode1;
+var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction658> */
+var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction658#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction658__action(val* self, val* p0) {
+parser__ReduceAction658__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */
+void parser__ReduceAction659__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var3 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var8 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var9 /* : Int */;
+long var10 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
+var_pexprnode2 = var3;
+var_tkwinitnode3 = var_nodearraylist1;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype = type_nullable_parser_nodes__TKwinit.color;
+idtype = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwinitnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25549);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist2;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype6 = type_nullable_parser_nodes__AExprs.color;
+idtype7 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_pexprsnode4->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25551);
+exit(1);
+}
+var8 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var8:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var8);
+var_pexprnode1 = var8;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction659> */
+var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction659#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) {
+parser__ReduceAction659__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */
+void parser__ReduceAction660__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var15 /* : Int */;
+long var16 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25573);
+exit(1);
+}
+var_tkwinitnode3 = var_nodearraylist5;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype9 = type_nullable_parser_nodes__TKwinit.color;
+idtype10 = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tkwinitnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25575);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist6;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype12 = type_nullable_parser_nodes__AExprs.color;
+idtype13 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprsnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25577);
+exit(1);
+}
+var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var14:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var14);
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction660> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction660#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) {
+parser__ReduceAction660__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction661#action for (self: ReduceAction661, Parser) */
+void parser__ReduceAction661__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25600);
+exit(1);
+}
+var_tkwinitnode3 = var_nodearraylist6;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype10 = type_nullable_parser_nodes__TKwinit.color;
+idtype11 = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tkwinitnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25602);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist7;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype13 = type_nullable_parser_nodes__AExprs.color;
+idtype14 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprsnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25604);
+exit(1);
+}
+var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var15:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction661> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction661#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction661__action(val* self, val* p0) {
+parser__ReduceAction661__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */
+void parser__ReduceAction663__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var9 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var10 /* : Int */;
+long var11 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
+var_pexprnode2 = var4;
+var_tkwinitnode3 = var_nodearraylist2;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype = type_nullable_parser_nodes__TKwinit.color;
+idtype = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tkwinitnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tkwinitnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25624);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist3;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype7 = type_nullable_parser_nodes__AExprs.color;
+idtype8 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_pexprsnode4->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25626);
+exit(1);
+}
+var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var9:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var9);
+var_pexprnode1 = var9;
+var_node_list = var_pexprnode1;
+var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction663> */
+var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction663#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) {
+parser__ReduceAction663__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */
+void parser__ReduceAction664__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var10 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var11 /* : Int */;
+long var12 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
+var_pexprnode2 = var5;
+var_tkwinitnode3 = var_nodearraylist3;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype = type_nullable_parser_nodes__TKwinit.color;
+idtype = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tkwinitnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tkwinitnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25647);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist4;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype8 = type_nullable_parser_nodes__AExprs.color;
+idtype9 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_pexprsnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25649);
+exit(1);
+}
+var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var10:AInitExpr>*/;
+CHECK_NEW_parser_nodes__AInitExpr(var10);
+var_pexprnode1 = var10;
+var_node_list = var_pexprnode1;
+var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction664> */
+var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction664#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) {
+parser__ReduceAction664__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction666#action for (self: ReduceAction666, Parser) */
+void parser__ReduceAction666__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pexprnode4 /* var pexprnode4: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_ptypenode5 /* var ptypenode5: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : ADebugTypeExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */;
+long var17 /* : Int */;
+long var18 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var_tkwdebugnode2 = var_nodearraylist1;
+/* <var_tkwdebugnode2:nullable Object> isa nullable TKwdebug */
+cltype = type_nullable_parser_nodes__TKwdebug.color;
+idtype = type_nullable_parser_nodes__TKwdebug.id;
+if(var_tkwdebugnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tkwdebugnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25670);
+exit(1);
+}
+var_tkwtypenode3 = var_nodearraylist2;
+/* <var_tkwtypenode3:nullable Object> isa nullable TKwtype */
+cltype8 = type_nullable_parser_nodes__TKwtype.color;
+idtype9 = type_nullable_parser_nodes__TKwtype.id;
+if(var_tkwtypenode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tkwtypenode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25672);
+exit(1);
+}
+var_pexprnode4 = var_nodearraylist5;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable_parser_nodes__AExpr.color;
+idtype12 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode4 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprnode4->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25674);
+exit(1);
+}
+var_ptypenode5 = var_nodearraylist3;
+/* <var_ptypenode5:nullable Object> isa nullable AType */
+cltype14 = type_nullable_parser_nodes__AType.color;
+idtype15 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode5 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_ptypenode5->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25676);
+exit(1);
+}
+var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr);
+((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ADebugTypeExpr__init_adebugtypeexpr]))(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5) /* init_adebugtypeexpr on <var16:ADebugTypeExpr>*/;
+CHECK_NEW_parser_nodes__ADebugTypeExpr(var16);
+var_pexprnode1 = var16;
+var_node_list = var_pexprnode1;
+var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction666> */
+var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction666#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction666__action(val* self, val* p0) {
+parser__ReduceAction666__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */
+void parser__ReduceAction667__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ALabel */;
+val* var_plabelnode1 /* var plabelnode1: nullable ALabel */;
+long var8 /* : Int */;
+long var9 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_tkwlabelnode2 = var_nodearraylist1;
+/* <var_tkwlabelnode2:nullable Object> isa nullable TKwlabel */
+cltype = type_nullable_parser_nodes__TKwlabel.color;
+idtype = type_nullable_parser_nodes__TKwlabel.id;
+if(var_tkwlabelnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwlabelnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25695);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype5 = type_nullable_parser_nodes__TId.color;
+idtype6 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_tidnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25697);
+exit(1);
+}
+var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel);
+((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALabel__init_alabel]))(var7, var_tkwlabelnode2, var_tidnode3) /* init_alabel on <var7:ALabel>*/;
+CHECK_NEW_parser_nodes__ALabel(var7);
+var_plabelnode1 = var7;
+var_node_list = var_plabelnode1;
+var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction667> */
+var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction667#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) {
+parser__ReduceAction667__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */
+void parser__ReduceAction668__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var2 /* : Array[Object] */;
+val* var_listnode2 /* var listnode2: Array[Object] */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable Object */;
+val* var3 /* : null */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
+long var6 /* : 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_nodearraylist1 = var1;
+var2 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
+CHECK_NEW_array__Array(var2);
+var_listnode2 = var2;
+var_pclosuredefnode1 = var_nodearraylist1;
+var3 = NULL;
+if (var_pclosuredefnode1 == NULL) {
+var4 = 0; /* is null */
+} else {
+var4 = 1; /* arg is null and recv is not */
+}
+if (var4){
+((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclosuredefnode1) /* add on <var_listnode2:Array[Object]>*/;
+} else {
+}
+var_node_list = var_listnode2;
+var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction668> */
+var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction668#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) {
+parser__ReduceAction668__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction669#action for (self: ReduceAction669, Parser) */
+void parser__ReduceAction669__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var3 /* : Array[Object] */;
+val* var_listnode3 /* var listnode3: Array[Object] */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable Object */;
+val* var_listnode2 /* var listnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var5 /* : null */;
+short int var6 /* : Bool */;
+val* var7 /* : Array[Object] */;
+long var8 /* : Int */;
+long var9 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var3 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
+CHECK_NEW_array__Array(var3);
+var_listnode3 = var3;
+var_pclosuredefnode1 = var_nodearraylist1;
+var_listnode2 = var_nodearraylist2;
+/* <var_listnode2:nullable Object> isa Array[Object] */
+cltype = type_array__Arraykernel__Object.color;
+idtype = type_array__Arraykernel__Object.id;
+if(var_listnode2 == NULL) {
+var4 = 0;
+} else {
+if(cltype >= var_listnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_listnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25731);
+exit(1);
+}
+var5 = NULL;
+if (var_pclosuredefnode1 == NULL) {
+var6 = 0; /* is null */
+} else {
+var6 = 1; /* arg is null and recv is not */
+}
+if (var6){
+((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclosuredefnode1) /* add on <var_listnode3:Array[Object]>*/;
+} else {
+}
+var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction669>*/;
+var_listnode3 = var7;
+var_node_list = var_listnode3;
+var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction669> */
+var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction669#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction669__action(val* self, val* p0) {
+parser__ReduceAction669__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */
+void parser__ReduceAction670__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_plabelnode7 /* var plabelnode7: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var20 /* : AClosureDef */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var21 /* : Int */;
+long var22 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
+CHECK_NEW_array__Array(var6);
+var_listnode4 = var6;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25752);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype9 = type_nullable_parser_nodes__AClosureId.color;
+idtype10 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pclosureidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25754);
+exit(1);
+}
+var_tkwdonode5 = var_nodearraylist3;
+/* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
+cltype12 = type_nullable_parser_nodes__TKwdo.color;
+idtype13 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tkwdonode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tkwdonode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25756);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist4;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode6->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25758);
+exit(1);
+}
+var_plabelnode7 = var_nodearraylist5;
+/* <var_plabelnode7:nullable Object> isa nullable ALabel */
+cltype18 = type_nullable_parser_nodes__ALabel.color;
+idtype19 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode7 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_plabelnode7->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_plabelnode7->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25760);
+exit(1);
+}
+var20 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var20, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var_plabelnode7) /* init_aclosuredef on <var20:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var20);
+var_pclosuredefnode1 = var20;
+var_node_list = var_pclosuredefnode1;
+var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction670> */
+var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction670#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) {
+parser__ReduceAction670__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction671#action for (self: ReduceAction671, Parser) */
+void parser__ReduceAction671__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_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var11 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var12 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var23 /* : Bool */;
+int cltype24;
+int idtype25;
+val* var_plabelnode8 /* var plabelnode8: nullable Object */;
+short int var26 /* : Bool */;
+int cltype27;
+int idtype28;
+val* var29 /* : AClosureDef */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var30 /* : Int */;
+long var31 /* : 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_nodearraylist10 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist9 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var9;
+var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var10;
+var11 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
+CHECK_NEW_array__Array(var11);
+var_listnode5 = var11;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var12 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25790);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype14 = type_nullable_parser_nodes__AClosureId.color;
+idtype15 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pclosureidnode3->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25792);
+exit(1);
+}
+var_listnode4 = var_nodearraylist5;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype17 = type_array__Arraykernel__Object.color;
+idtype18 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var16 = 0;
+} else {
+if(cltype17 >= var_listnode4->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_listnode4->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25794);
+exit(1);
+}
+var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction671>*/;
+var_listnode5 = var19;
+var_tkwdonode6 = var_nodearraylist8;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype21 = type_nullable_parser_nodes__TKwdo.color;
+idtype22 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_tkwdonode6->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25797);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist9;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype24 = type_nullable_parser_nodes__AExpr.color;
+idtype25 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var23 = 1;
+} else {
+if(cltype24 >= var_pexprnode7->type->table_size) {
+var23 = 0;
+} else {
+var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
+}
+}
+if (!var23) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25799);
+exit(1);
+}
+var_plabelnode8 = var_nodearraylist10;
+/* <var_plabelnode8:nullable Object> isa nullable ALabel */
+cltype27 = type_nullable_parser_nodes__ALabel.color;
+idtype28 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode8 == NULL) {
+var26 = 1;
+} else {
+if(cltype27 >= var_plabelnode8->type->table_size) {
+var26 = 0;
+} else {
+var26 = var_plabelnode8->type->type_table[cltype27] == idtype28;
+}
+}
+if (!var26) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25801);
+exit(1);
+}
+var29 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var29, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aclosuredef on <var29:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var29);
+var_pclosuredefnode1 = var29;
+var_node_list = var_pclosuredefnode1;
+var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction671> */
+var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction671#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction671__action(val* self, val* p0) {
+parser__ReduceAction671__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */
+void parser__ReduceAction672__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var7 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var_plabelnode8 /* var plabelnode8: nullable Object */;
+short int var22 /* : Bool */;
+int cltype23;
+int idtype24;
+val* var25 /* : AClosureDef */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var26 /* : Int */;
+long var27 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var7 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
+CHECK_NEW_array__Array(var7);
+var_listnode5 = var7;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25827);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype10 = type_nullable_parser_nodes__AClosureId.color;
+idtype11 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pclosureidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25829);
+exit(1);
+}
+var_listnode4 = var_nodearraylist3;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype13 = type_array__Arraykernel__Object.color;
+idtype14 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var12 = 0;
+} else {
+if(cltype13 >= var_listnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_listnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25831);
+exit(1);
+}
+var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction672>*/;
+var_listnode5 = var15;
+var_tkwdonode6 = var_nodearraylist4;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype17 = type_nullable_parser_nodes__TKwdo.color;
+idtype18 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_tkwdonode6->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_tkwdonode6->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25834);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist5;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype20 = type_nullable_parser_nodes__AExpr.color;
+idtype21 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_pexprnode7->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_pexprnode7->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25836);
+exit(1);
+}
+var_plabelnode8 = var_nodearraylist6;
+/* <var_plabelnode8:nullable Object> isa nullable ALabel */
+cltype23 = type_nullable_parser_nodes__ALabel.color;
+idtype24 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode8 == NULL) {
+var22 = 1;
+} else {
+if(cltype23 >= var_plabelnode8->type->table_size) {
+var22 = 0;
+} else {
+var22 = var_plabelnode8->type->type_table[cltype23] == idtype24;
+}
+}
+if (!var22) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25838);
+exit(1);
+}
+var25 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var25, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aclosuredef on <var25:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var25);
+var_pclosuredefnode1 = var25;
+var_node_list = var_pclosuredefnode1;
+var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction672> */
+var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction672#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) {
+parser__ReduceAction672__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */
+void parser__ReduceAction673__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : AClosureDef */;
+val* var17 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
+CHECK_NEW_array__Array(var5);
+var_listnode4 = var5;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25862);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype8 = type_nullable_parser_nodes__AClosureId.color;
+idtype9 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_pclosureidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pclosureidnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25864);
+exit(1);
+}
+var_tkwdonode5 = var_nodearraylist3;
+/* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
+cltype11 = type_nullable_parser_nodes__TKwdo.color;
+idtype12 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tkwdonode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tkwdonode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25866);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist4;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode6->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25868);
+exit(1);
+}
+var16 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var17 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var16, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var17) /* init_aclosuredef on <var16:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var16);
+var_pclosuredefnode1 = var16;
+var_node_list = var_pclosuredefnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction673> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction673#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) {
+parser__ReduceAction673__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction674#action for (self: ReduceAction674, Parser) */
+void parser__ReduceAction674__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_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var10 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var11 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var22 /* : Bool */;
+int cltype23;
+int idtype24;
+val* var25 /* : AClosureDef */;
+val* var26 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var27 /* : Int */;
+long var28 /* : 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_nodearraylist9 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var9;
+var10 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
+CHECK_NEW_array__Array(var10);
+var_listnode5 = var10;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var11 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25897);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype13 = type_nullable_parser_nodes__AClosureId.color;
+idtype14 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pclosureidnode3->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pclosureidnode3->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25899);
+exit(1);
+}
+var_listnode4 = var_nodearraylist5;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype16 = type_array__Arraykernel__Object.color;
+idtype17 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var15 = 0;
+} else {
+if(cltype16 >= var_listnode4->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_listnode4->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25901);
+exit(1);
+}
+var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction674>*/;
+var_listnode5 = var18;
+var_tkwdonode6 = var_nodearraylist8;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype20 = type_nullable_parser_nodes__TKwdo.color;
+idtype21 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_tkwdonode6->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_tkwdonode6->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25904);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist9;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype23 = type_nullable_parser_nodes__AExpr.color;
+idtype24 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var22 = 1;
+} else {
+if(cltype23 >= var_pexprnode7->type->table_size) {
+var22 = 0;
+} else {
+var22 = var_pexprnode7->type->type_table[cltype23] == idtype24;
+}
+}
+if (!var22) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25906);
+exit(1);
+}
+var25 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var26 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var25, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var26) /* init_aclosuredef on <var25:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var25);
+var_pclosuredefnode1 = var25;
+var_node_list = var_pclosuredefnode1;
+var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction674> */
+var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction674#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction674__action(val* self, val* p0) {
+parser__ReduceAction674__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction675#action for (self: ReduceAction675, Parser) */
+void parser__ReduceAction675__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var21 /* : AClosureDef */;
+val* var22 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var23 /* : Int */;
+long var24 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
+CHECK_NEW_array__Array(var6);
+var_listnode5 = var6;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25931);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype9 = type_nullable_parser_nodes__AClosureId.color;
+idtype10 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pclosureidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25933);
+exit(1);
+}
+var_listnode4 = var_nodearraylist3;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype12 = type_array__Arraykernel__Object.color;
+idtype13 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var11 = 0;
+} else {
+if(cltype12 >= var_listnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_listnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25935);
+exit(1);
+}
+var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction675>*/;
+var_listnode5 = var14;
+var_tkwdonode6 = var_nodearraylist4;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype16 = type_nullable_parser_nodes__TKwdo.color;
+idtype17 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_tkwdonode6->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_tkwdonode6->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25938);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist5;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype19 = type_nullable_parser_nodes__AExpr.color;
+idtype20 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_pexprnode7->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_pexprnode7->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25940);
+exit(1);
+}
+var21 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var22 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var21, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var22) /* init_aclosuredef on <var21:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var21);
+var_pclosuredefnode1 = var21;
+var_node_list = var_pclosuredefnode1;
+var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction675> */
+var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction675#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction675__action(val* self, val* p0) {
+parser__ReduceAction675__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */
+void parser__ReduceAction676__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AClosureDef */;
+val* var15 /* : null */;
+val* var16 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var17 /* : Int */;
+long var18 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
+CHECK_NEW_array__Array(var6);
+var_listnode4 = var6;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25965);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype9 = type_nullable_parser_nodes__AClosureId.color;
+idtype10 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pclosureidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25967);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist5;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable_parser_nodes__AExpr.color;
+idtype13 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprnode6->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode6->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25969);
+exit(1);
+}
+var14 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var15 = NULL;
+var16 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var14, var_tbangnode2, var_pclosureidnode3, var_listnode4, var15, var_pexprnode6, var16) /* init_aclosuredef on <var14:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var14);
+var_pclosuredefnode1 = var14;
+var_node_list = var_pclosuredefnode1;
+var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction676> */
+var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction676#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) {
+parser__ReduceAction676__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */
+void parser__ReduceAction677__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_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var11 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var12 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : Array[Object] */;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var23 /* : AClosureDef */;
+val* var24 /* : null */;
+val* var25 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var26 /* : Int */;
+long var27 /* : 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_nodearraylist10 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist9 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var9;
+var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var10;
+var11 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
+CHECK_NEW_array__Array(var11);
+var_listnode5 = var11;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var12 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25999);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype14 = type_nullable_parser_nodes__AClosureId.color;
+idtype15 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pclosureidnode3->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26001);
+exit(1);
+}
+var_listnode4 = var_nodearraylist5;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype17 = type_array__Arraykernel__Object.color;
+idtype18 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var16 = 0;
+} else {
+if(cltype17 >= var_listnode4->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_listnode4->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26003);
+exit(1);
+}
+var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction677>*/;
+var_listnode5 = var19;
+var_pexprnode7 = var_nodearraylist10;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype21 = type_nullable_parser_nodes__AExpr.color;
+idtype22 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_pexprnode7->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_pexprnode7->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26006);
+exit(1);
+}
+var23 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var24 = NULL;
+var25 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var23, var_tbangnode2, var_pclosureidnode3, var_listnode5, var24, var_pexprnode7, var25) /* init_aclosuredef on <var23:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var23);
+var_pclosuredefnode1 = var23;
+var_node_list = var_pclosuredefnode1;
+var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction677> */
+var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction677#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) {
+parser__ReduceAction677__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction678#action for (self: ReduceAction678, Parser) */
+void parser__ReduceAction678__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var7 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : Array[Object] */;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AClosureDef */;
+val* var20 /* : null */;
+val* var21 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var7 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
+CHECK_NEW_array__Array(var7);
+var_listnode5 = var7;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26032);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype10 = type_nullable_parser_nodes__AClosureId.color;
+idtype11 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pclosureidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26034);
+exit(1);
+}
+var_listnode4 = var_nodearraylist3;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype13 = type_array__Arraykernel__Object.color;
+idtype14 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var12 = 0;
+} else {
+if(cltype13 >= var_listnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_listnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26036);
+exit(1);
+}
+var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction678>*/;
+var_listnode5 = var15;
+var_pexprnode7 = var_nodearraylist6;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable_parser_nodes__AExpr.color;
+idtype18 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprnode7->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprnode7->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26039);
+exit(1);
+}
+var19 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var20 = NULL;
+var21 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var19, var_tbangnode2, var_pclosureidnode3, var_listnode5, var20, var_pexprnode7, var21) /* init_aclosuredef on <var19:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var19);
+var_pclosuredefnode1 = var19;
+var_node_list = var_pclosuredefnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction678> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction678#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction678__action(val* self, val* p0) {
+parser__ReduceAction678__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction679#action for (self: ReduceAction679, Parser) */
+void parser__ReduceAction679__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : AClosureDef */;
+val* var18 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
+CHECK_NEW_array__Array(var6);
+var_listnode4 = var6;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26064);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype9 = type_nullable_parser_nodes__AClosureId.color;
+idtype10 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pclosureidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26066);
+exit(1);
+}
+var_tkwdonode5 = var_nodearraylist3;
+/* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
+cltype12 = type_nullable_parser_nodes__TKwdo.color;
+idtype13 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tkwdonode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tkwdonode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26068);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist5;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode6->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26070);
+exit(1);
+}
+var17 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var18 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var17, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var18) /* init_aclosuredef on <var17:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var17);
+var_pclosuredefnode1 = var17;
+var_node_list = var_pclosuredefnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction679> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction679#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction679__action(val* self, val* p0) {
+parser__ReduceAction679__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */
+void parser__ReduceAction680__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_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var11 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var12 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var23 /* : Bool */;
+int cltype24;
+int idtype25;
+val* var26 /* : AClosureDef */;
+val* var27 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var28 /* : Int */;
+long var29 /* : 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_nodearraylist10 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist9 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var9;
+var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var10;
+var11 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
+CHECK_NEW_array__Array(var11);
+var_listnode5 = var11;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var12 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26100);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype14 = type_nullable_parser_nodes__AClosureId.color;
+idtype15 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pclosureidnode3->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26102);
+exit(1);
+}
+var_listnode4 = var_nodearraylist5;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype17 = type_array__Arraykernel__Object.color;
+idtype18 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var16 = 0;
+} else {
+if(cltype17 >= var_listnode4->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_listnode4->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26104);
+exit(1);
+}
+var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction680>*/;
+var_listnode5 = var19;
+var_tkwdonode6 = var_nodearraylist8;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype21 = type_nullable_parser_nodes__TKwdo.color;
+idtype22 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_tkwdonode6->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26107);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist10;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype24 = type_nullable_parser_nodes__AExpr.color;
+idtype25 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var23 = 1;
+} else {
+if(cltype24 >= var_pexprnode7->type->table_size) {
+var23 = 0;
+} else {
+var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
+}
+}
+if (!var23) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26109);
+exit(1);
+}
+var26 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var27 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var26, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aclosuredef on <var26:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var26);
+var_pclosuredefnode1 = var26;
+var_node_list = var_pclosuredefnode1;
+var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction680> */
+var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction680#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) {
+parser__ReduceAction680__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */
+void parser__ReduceAction681__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var7 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var_pexprnode7 /* var pexprnode7: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var22 /* : AClosureDef */;
+val* var23 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var24 /* : Int */;
+long var25 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var7 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
+CHECK_NEW_array__Array(var7);
+var_listnode5 = var7;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26135);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype10 = type_nullable_parser_nodes__AClosureId.color;
+idtype11 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pclosureidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26137);
+exit(1);
+}
+var_listnode4 = var_nodearraylist3;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype13 = type_array__Arraykernel__Object.color;
+idtype14 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var12 = 0;
+} else {
+if(cltype13 >= var_listnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_listnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26139);
+exit(1);
+}
+var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction681>*/;
+var_listnode5 = var15;
+var_tkwdonode6 = var_nodearraylist4;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype17 = type_nullable_parser_nodes__TKwdo.color;
+idtype18 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_tkwdonode6->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_tkwdonode6->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26142);
+exit(1);
+}
+var_pexprnode7 = var_nodearraylist6;
+/* <var_pexprnode7:nullable Object> isa nullable AExpr */
+cltype20 = type_nullable_parser_nodes__AExpr.color;
+idtype21 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode7 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_pexprnode7->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_pexprnode7->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26144);
+exit(1);
+}
+var22 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var23 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var22, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var23) /* init_aclosuredef on <var22:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var22);
+var_pclosuredefnode1 = var22;
+var_node_list = var_pclosuredefnode1;
+var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction681> */
+var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction681#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) {
+parser__ReduceAction681__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction682#action for (self: ReduceAction682, Parser) */
+void parser__ReduceAction682__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : Array[Object] */;
+val* var_listnode4 /* var listnode4: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var13 /* : AClosureDef */;
+val* var14 /* : null */;
+val* var15 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
+CHECK_NEW_array__Array(var5);
+var_listnode4 = var5;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26168);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype8 = type_nullable_parser_nodes__AClosureId.color;
+idtype9 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_pclosureidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pclosureidnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26170);
+exit(1);
+}
+var_tkwdonode5 = var_nodearraylist3;
+/* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
+cltype11 = type_nullable_parser_nodes__TKwdo.color;
+idtype12 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tkwdonode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tkwdonode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26172);
+exit(1);
+}
+var13 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var14 = NULL;
+var15 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var13, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var14, var15) /* init_aclosuredef on <var13:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var13);
+var_pclosuredefnode1 = var13;
+var_node_list = var_pclosuredefnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction682> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction682#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction682__action(val* self, val* p0) {
+parser__ReduceAction682__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction683#action for (self: ReduceAction683, Parser) */
+void parser__ReduceAction683__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_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var10 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var11 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var22 /* : AClosureDef */;
+val* var23 /* : null */;
+val* var24 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var25 /* : Int */;
+long var26 /* : 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_nodearraylist9 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var9;
+var10 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
+CHECK_NEW_array__Array(var10);
+var_listnode5 = var10;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var11 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26201);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype13 = type_nullable_parser_nodes__AClosureId.color;
+idtype14 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pclosureidnode3->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pclosureidnode3->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26203);
+exit(1);
+}
+var_listnode4 = var_nodearraylist5;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype16 = type_array__Arraykernel__Object.color;
+idtype17 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var15 = 0;
+} else {
+if(cltype16 >= var_listnode4->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_listnode4->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26205);
+exit(1);
+}
+var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction683>*/;
+var_listnode5 = var18;
+var_tkwdonode6 = var_nodearraylist8;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype20 = type_nullable_parser_nodes__TKwdo.color;
+idtype21 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_tkwdonode6->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_tkwdonode6->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26208);
+exit(1);
+}
+var22 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var23 = NULL;
+var24 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var22, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var23, var24) /* init_aclosuredef on <var22:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var22);
+var_pclosuredefnode1 = var22;
+var_node_list = var_pclosuredefnode1;
+var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction683> */
+var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction683#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction683__action(val* self, val* p0) {
+parser__ReduceAction683__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */
+void parser__ReduceAction684__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var_tbangnode2 /* var tbangnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_listnode4 /* var listnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : Array[Object] */;
+val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : AClosureDef */;
+val* var19 /* : null */;
+val* var20 /* : null */;
+val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
+long var21 /* : Int */;
+long var22 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
+CHECK_NEW_array__Array(var6);
+var_listnode5 = var6;
+var_tbangnode2 = var_nodearraylist1;
+/* <var_tbangnode2:nullable Object> isa nullable TBang */
+cltype = type_nullable_parser_nodes__TBang.color;
+idtype = type_nullable_parser_nodes__TBang.id;
+if(var_tbangnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tbangnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tbangnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26233);
+exit(1);
+}
+var_pclosureidnode3 = var_nodearraylist2;
+/* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
+cltype9 = type_nullable_parser_nodes__AClosureId.color;
+idtype10 = type_nullable_parser_nodes__AClosureId.id;
+if(var_pclosureidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pclosureidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26235);
+exit(1);
+}
+var_listnode4 = var_nodearraylist3;
+/* <var_listnode4:nullable Object> isa Array[Object] */
+cltype12 = type_array__Arraykernel__Object.color;
+idtype13 = type_array__Arraykernel__Object.id;
+if(var_listnode4 == NULL) {
+var11 = 0;
+} else {
+if(cltype12 >= var_listnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_listnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26237);
+exit(1);
+}
+var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction684>*/;
+var_listnode5 = var14;
+var_tkwdonode6 = var_nodearraylist4;
+/* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
+cltype16 = type_nullable_parser_nodes__TKwdo.color;
+idtype17 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode6 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_tkwdonode6->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_tkwdonode6->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26240);
+exit(1);
+}
+var18 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
+var19 = NULL;
+var20 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var18, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var19, var20) /* init_aclosuredef on <var18:AClosureDef>*/;
+CHECK_NEW_parser_nodes__AClosureDef(var18);
+var_pclosuredefnode1 = var18;
+var_node_list = var_pclosuredefnode1;
+var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction684> */
+var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction684#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) {
+parser__ReduceAction684__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */
+void parser__ReduceAction685__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tidnode2 /* var tidnode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var3 /* : ASimpleClosureId */;
+val* var_pclosureidnode1 /* var pclosureidnode1: nullable ASimpleClosureId */;
+long var4 /* : Int */;
+long var5 /* : 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_nodearraylist1 = var1;
+var_tidnode2 = var_nodearraylist1;
+/* <var_tidnode2:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= var_tidnode2->type->table_size) {
+var2 = 0;
+} else {
+var2 = var_tidnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var2) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26260);
+exit(1);
+}
+var3 = NEW_parser_nodes__ASimpleClosureId(&type_parser_nodes__ASimpleClosureId);
+((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASimpleClosureId__init_asimpleclosureid]))(var3, var_tidnode2) /* init_asimpleclosureid on <var3:ASimpleClosureId>*/;
+CHECK_NEW_parser_nodes__ASimpleClosureId(var3);
+var_pclosureidnode1 = var3;
+var_node_list = var_pclosureidnode1;
+var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction685> */
+var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction685#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) {
+parser__ReduceAction685__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction686#action for (self: ReduceAction686, Parser) */
+void parser__ReduceAction686__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var3 /* : ABreakClosureId */;
+val* var_pclosureidnode1 /* var pclosureidnode1: nullable ABreakClosureId */;
+long var4 /* : Int */;
+long var5 /* : 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_nodearraylist1 = var1;
+var_tkwbreaknode2 = var_nodearraylist1;
+/* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
+cltype = type_nullable_parser_nodes__TKwbreak.color;
+idtype = type_nullable_parser_nodes__TKwbreak.id;
+if(var_tkwbreaknode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= var_tkwbreaknode2->type->table_size) {
+var2 = 0;
+} else {
+var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var2) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26275);
+exit(1);
+}
+var3 = NEW_parser_nodes__ABreakClosureId(&type_parser_nodes__ABreakClosureId);
+((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ABreakClosureId__init_abreakclosureid]))(var3, var_tkwbreaknode2) /* init_abreakclosureid on <var3:ABreakClosureId>*/;
+CHECK_NEW_parser_nodes__ABreakClosureId(var3);
+var_pclosureidnode1 = var3;
+var_node_list = var_pclosureidnode1;
+var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction686> */
+var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction686#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction686__action(val* self, val* p0) {
+parser__ReduceAction686__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */
+void parser__ReduceAction687__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode4 /* var pexprnode4: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var3 /* : AContinueExpr */;
+val* var4 /* : null */;
+val* var5 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
+long var6 /* : Int */;
+long var7 /* : 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_nodearraylist1 = var1;
+var_pexprnode4 = var_nodearraylist1;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode4 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= var_pexprnode4->type->table_size) {
+var2 = 0;
+} else {
+var2 = var_pexprnode4->type->type_table[cltype] == idtype;
+}
+}
+if (!var2) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26290);
+exit(1);
+}
+var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
+var4 = NULL;
+var5 = NULL;
+((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var4, var5, var_pexprnode4) /* init_acontinueexpr on <var3:AContinueExpr>*/;
+CHECK_NEW_parser_nodes__AContinueExpr(var3);
+var_pexprnode1 = var3;
+var_node_list = var_pexprnode1;
+var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction687> */
+var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction687#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) {
+parser__ReduceAction687__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */
+void parser__ReduceAction688__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AVardeclExpr */;
+val* var8 /* : null */;
+val* var9 /* : null */;
+val* var10 /* : null */;
+val* var11 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var12 /* : Int */;
+long var13 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26308);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype5 = type_nullable_parser_nodes__TId.color;
+idtype6 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_tidnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26310);
+exit(1);
+}
+var7 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var8 = NULL;
+var9 = NULL;
+var10 = NULL;
+var11 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var7, var_tkwvarnode2, var_tidnode3, var8, var9, var10, var11) /* init_avardeclexpr on <var7:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var7);
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction688> */
+var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction688#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) {
+parser__ReduceAction688__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */
+void parser__ReduceAction689__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var11 /* : AVardeclExpr */;
+val* var12 /* : null */;
+val* var13 /* : null */;
+val* var14 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var15 /* : Int */;
+long var16 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26332);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype6 = type_nullable_parser_nodes__TId.color;
+idtype7 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_tidnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26334);
+exit(1);
+}
+var_pannotationsnode7 = var_nodearraylist3;
+/* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
+cltype9 = type_nullable_parser_nodes__AAnnotations.color;
+idtype10 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode7 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pannotationsnode7->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pannotationsnode7->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26336);
+exit(1);
+}
+var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var12 = NULL;
+var13 = NULL;
+var14 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var12, var13, var14, var_pannotationsnode7) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var11);
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction689> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction689#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) {
+parser__ReduceAction689__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */
+void parser__ReduceAction690__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var_ptypenode4 /* var ptypenode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var11 /* : AVardeclExpr */;
+val* var12 /* : null */;
+val* var13 /* : null */;
+val* var14 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var15 /* : Int */;
+long var16 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26358);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype6 = type_nullable_parser_nodes__TId.color;
+idtype7 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_tidnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26360);
+exit(1);
+}
+var_ptypenode4 = var_nodearraylist3;
+/* <var_ptypenode4:nullable Object> isa nullable AType */
+cltype9 = type_nullable_parser_nodes__AType.color;
+idtype10 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_ptypenode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_ptypenode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26362);
+exit(1);
+}
+var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var12 = NULL;
+var13 = NULL;
+var14 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var11);
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction690> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction690#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) {
+parser__ReduceAction690__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */
+void parser__ReduceAction691__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_ptypenode4 /* var ptypenode4: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : AVardeclExpr */;
+val* var16 /* : null */;
+val* var17 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26385);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype7 = type_nullable_parser_nodes__TId.color;
+idtype8 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_tidnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26387);
+exit(1);
+}
+var_ptypenode4 = var_nodearraylist4;
+/* <var_ptypenode4:nullable Object> isa nullable AType */
+cltype10 = type_nullable_parser_nodes__AType.color;
+idtype11 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode4 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_ptypenode4->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_ptypenode4->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26389);
+exit(1);
+}
+var_pannotationsnode7 = var_nodearraylist3;
+/* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
+cltype13 = type_nullable_parser_nodes__AAnnotations.color;
+idtype14 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode7 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pannotationsnode7->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26391);
+exit(1);
+}
+var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var16 = NULL;
+var17 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7) /* init_avardeclexpr on <var15:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction691> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction691#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) {
+parser__ReduceAction691__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */
+void parser__ReduceAction692__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : AVardeclExpr */;
+val* var17 /* : null */;
+val* var18 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26415);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype8 = type_nullable_parser_nodes__TId.color;
+idtype9 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26417);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist3;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype11 = type_nullable_parser_nodes__TAssign.color;
+idtype12 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tassignnode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26419);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist5;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode6->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26421);
+exit(1);
+}
+var16 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var17 = NULL;
+var18 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var16, var_tkwvarnode2, var_tidnode3, var17, var_tassignnode5, var_pexprnode6, var18) /* init_avardeclexpr on <var16:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var16);
+var_pexprnode1 = var16;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction692> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction692#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) {
+parser__ReduceAction692__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction693#action for (self: ReduceAction693, Parser) */
+void parser__ReduceAction693__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var20 /* : AVardeclExpr */;
+val* var21 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26446);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype9 = type_nullable_parser_nodes__TId.color;
+idtype10 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26448);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist4;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype12 = type_nullable_parser_nodes__TAssign.color;
+idtype13 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tassignnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26450);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist6;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode6->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26452);
+exit(1);
+}
+var_pannotationsnode7 = var_nodearraylist3;
+/* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
+cltype18 = type_nullable_parser_nodes__AAnnotations.color;
+idtype19 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode7 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_pannotationsnode7->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_pannotationsnode7->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26454);
+exit(1);
+}
+var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var21 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var21, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on <var20:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var20);
+var_pexprnode1 = var20;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction693> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction693#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction693__action(val* self, val* p0) {
+parser__ReduceAction693__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction694#action for (self: ReduceAction694, Parser) */
+void parser__ReduceAction694__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_ptypenode4 /* var ptypenode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var20 /* : AVardeclExpr */;
+val* var21 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26479);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype9 = type_nullable_parser_nodes__TId.color;
+idtype10 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26481);
+exit(1);
+}
+var_ptypenode4 = var_nodearraylist3;
+/* <var_ptypenode4:nullable Object> isa nullable AType */
+cltype12 = type_nullable_parser_nodes__AType.color;
+idtype13 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_ptypenode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_ptypenode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26483);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist4;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype15 = type_nullable_parser_nodes__TAssign.color;
+idtype16 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_tassignnode5->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_tassignnode5->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26485);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist6;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype18 = type_nullable_parser_nodes__AExpr.color;
+idtype19 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_pexprnode6->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_pexprnode6->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26487);
+exit(1);
+}
+var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+var21 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21) /* init_avardeclexpr on <var20:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var20);
+var_pexprnode1 = var20;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction694> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction694#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction694__action(val* self, val* p0) {
+parser__ReduceAction694__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */
+void parser__ReduceAction695__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_ptypenode4 /* var ptypenode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
+short int var21 /* : Bool */;
+int cltype22;
+int idtype23;
+val* var24 /* : AVardeclExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
+long var25 /* : Int */;
+long var26 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_tkwvarnode2 = var_nodearraylist1;
+/* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
+cltype = type_nullable_parser_nodes__TKwvar.color;
+idtype = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tkwvarnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwvarnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26513);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype10 = type_nullable_parser_nodes__TId.color;
+idtype11 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26515);
+exit(1);
+}
+var_ptypenode4 = var_nodearraylist4;
+/* <var_ptypenode4:nullable Object> isa nullable AType */
+cltype13 = type_nullable_parser_nodes__AType.color;
+idtype14 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_ptypenode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_ptypenode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26517);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist5;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype16 = type_nullable_parser_nodes__TAssign.color;
+idtype17 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_tassignnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26519);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist7;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype19 = type_nullable_parser_nodes__AExpr.color;
+idtype20 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_pexprnode6->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26521);
+exit(1);
+}
+var_pannotationsnode7 = var_nodearraylist3;
+/* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
+cltype22 = type_nullable_parser_nodes__AAnnotations.color;
+idtype23 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode7 == NULL) {
+var21 = 1;
+} else {
+if(cltype22 >= var_pannotationsnode7->type->table_size) {
+var21 = 0;
+} else {
+var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
+}
+}
+if (!var21) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26523);
+exit(1);
+}
+var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
+((void (*)(val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on <var24:AVardeclExpr>*/;
+CHECK_NEW_parser_nodes__AVardeclExpr(var24);
+var_pexprnode1 = var24;
+var_node_list = var_pexprnode1;
+var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction695> */
+var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction695#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) {
+parser__ReduceAction695__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */
+void parser__ReduceAction696__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26548);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist4;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype9 = type_nullable_parser_nodes__TAttrid.color;
+idtype10 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tattridnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26550);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist5;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype12 = type_nullable_parser_nodes__TAssign.color;
+idtype13 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tassignnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tassignnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26552);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist6;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode5->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26554);
+exit(1);
+}
+var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var17:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var17);
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction696> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction696#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) {
+parser__ReduceAction696__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction697#action for (self: ReduceAction697, Parser) */
+void parser__ReduceAction697__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var12 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var13 /* : Int */;
+long var14 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
+var_pexprnode2 = var4;
+var_tattridnode3 = var_nodearraylist1;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26575);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist2;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype7 = type_nullable_parser_nodes__TAssign.color;
+idtype8 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_tassignnode4->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tassignnode4->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26577);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist3;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype10 = type_nullable_parser_nodes__AExpr.color;
+idtype11 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprnode5->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26579);
+exit(1);
+}
+var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var12:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var12);
+var_pexprnode1 = var12;
+var_node_list = var_pexprnode1;
+var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction697> */
+var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction697#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction697__action(val* self, val* p0) {
+parser__ReduceAction697__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction698#action for (self: ReduceAction698, Parser) */
+void parser__ReduceAction698__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26603);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist5;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype10 = type_nullable_parser_nodes__TAttrid.color;
+idtype11 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tattridnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26605);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist6;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype13 = type_nullable_parser_nodes__TAssign.color;
+idtype14 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tassignnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tassignnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26607);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist7;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype16 = type_nullable_parser_nodes__AExpr.color;
+idtype17 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26609);
+exit(1);
+}
+var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var18:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var18);
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction698> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction698#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction698__action(val* self, val* p0) {
+parser__ReduceAction698__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */
+void parser__ReduceAction699__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var20 /* : Int */;
+long var21 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26634);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist6;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype11 = type_nullable_parser_nodes__TAttrid.color;
+idtype12 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tattridnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26636);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist7;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype14 = type_nullable_parser_nodes__TAssign.color;
+idtype15 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_tassignnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_tassignnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26638);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist8;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable_parser_nodes__AExpr.color;
+idtype18 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26640);
+exit(1);
+}
+var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var19:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var19);
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction699> */
+var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction699#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) {
+parser__ReduceAction699__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */
+void parser__ReduceAction701__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var13 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var14 /* : Int */;
+long var15 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
+var_pexprnode2 = var5;
+var_tattridnode3 = var_nodearraylist2;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26662);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist3;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype8 = type_nullable_parser_nodes__TAssign.color;
+idtype9 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tassignnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tassignnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26664);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist4;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable_parser_nodes__AExpr.color;
+idtype12 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprnode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26666);
+exit(1);
+}
+var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var13:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var13);
+var_pexprnode1 = var13;
+var_node_list = var_pexprnode1;
+var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction701> */
+var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction701#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) {
+parser__ReduceAction701__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */
+void parser__ReduceAction702__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AAttrAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
+long var15 /* : Int */;
+long var16 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
+var_pexprnode2 = var6;
+var_tattridnode3 = var_nodearraylist3;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26689);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist4;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype9 = type_nullable_parser_nodes__TAssign.color;
+idtype10 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tassignnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26691);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist5;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable_parser_nodes__AExpr.color;
+idtype13 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26693);
+exit(1);
+}
+var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var14:AAttrAssignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrAssignExpr(var14);
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction702> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction702#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) {
+parser__ReduceAction702__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */
+void parser__ReduceAction704__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var21 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26717);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist4;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype10 = type_nullable_parser_nodes__TId.color;
+idtype11 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26719);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist5;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype13 = type_nullable_parser_nodes__AExprs.color;
+idtype14 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprsnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26721);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist6;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype16 = type_nullable_parser_nodes__TAssign.color;
+idtype17 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_tassignnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26723);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist7;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype19 = type_nullable_parser_nodes__AExpr.color;
+idtype20 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_pexprnode6->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26725);
+exit(1);
+}
+var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var21:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var21);
+var_pexprnode1 = var21;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction704> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction704#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) {
+parser__ReduceAction704__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */
+void parser__ReduceAction705__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var17 /* : Int */;
+long var18 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
+var_pexprnode2 = var5;
+var_tidnode3 = var_nodearraylist1;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26748);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist2;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype8 = type_nullable_parser_nodes__AExprs.color;
+idtype9 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_pexprsnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26750);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist3;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype11 = type_nullable_parser_nodes__TAssign.color;
+idtype12 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tassignnode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26752);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist4;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode6->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26754);
+exit(1);
+}
+var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var16:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var16);
+var_pexprnode1 = var16;
+var_node_list = var_pexprnode1;
+var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction705> */
+var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction705#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) {
+parser__ReduceAction705__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */
+void parser__ReduceAction706__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var22 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var23 /* : Int */;
+long var24 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26780);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist5;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype11 = type_nullable_parser_nodes__TId.color;
+idtype12 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tidnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26782);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist6;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype14 = type_nullable_parser_nodes__AExprs.color;
+idtype15 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprsnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26784);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist7;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype17 = type_nullable_parser_nodes__TAssign.color;
+idtype18 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_tassignnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_tassignnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26786);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist8;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype20 = type_nullable_parser_nodes__AExpr.color;
+idtype21 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_pexprnode6->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26788);
+exit(1);
+}
+var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var22:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var22);
+var_pexprnode1 = var22;
+var_node_list = var_pexprnode1;
+var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction706> */
+var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction706#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) {
+parser__ReduceAction706__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */
+void parser__ReduceAction707__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_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var10 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var23 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var24 /* : Int */;
+long var25 /* : 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_nodearraylist9 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var9;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var10 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26815);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist6;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype12 = type_nullable_parser_nodes__TId.color;
+idtype13 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tidnode3->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26817);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist7;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype15 = type_nullable_parser_nodes__AExprs.color;
+idtype16 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprsnode4->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26819);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist8;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype18 = type_nullable_parser_nodes__TAssign.color;
+idtype19 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_tassignnode5->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_tassignnode5->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26821);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist9;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype21 = type_nullable_parser_nodes__AExpr.color;
+idtype22 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_pexprnode6->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26823);
+exit(1);
+}
+var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var23:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var23);
+var_pexprnode1 = var23;
+var_node_list = var_pexprnode1;
+var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction707> */
+var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction707#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) {
+parser__ReduceAction707__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction709#action for (self: ReduceAction709, Parser) */
+void parser__ReduceAction709__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
+var_pexprnode2 = var6;
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26847);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist3;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype9 = type_nullable_parser_nodes__AExprs.color;
+idtype10 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprsnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26849);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist4;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype12 = type_nullable_parser_nodes__TAssign.color;
+idtype13 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tassignnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26851);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist5;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode6->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26853);
+exit(1);
+}
+var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var17:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var17);
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction709> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction709#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction709__action(val* self, val* p0) {
+parser__ReduceAction709__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */
+void parser__ReduceAction710__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var7 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tassignnode5 /* var tassignnode5: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : ACallAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
+var_pexprnode2 = var7;
+var_tidnode3 = var_nodearraylist3;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26878);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist4;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype10 = type_nullable_parser_nodes__AExprs.color;
+idtype11 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprsnode4->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26880);
+exit(1);
+}
+var_tassignnode5 = var_nodearraylist5;
+/* <var_tassignnode5:nullable Object> isa nullable TAssign */
+cltype13 = type_nullable_parser_nodes__TAssign.color;
+idtype14 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode5 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tassignnode5->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tassignnode5->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26882);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist6;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype16 = type_nullable_parser_nodes__AExpr.color;
+idtype17 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprnode6->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26884);
+exit(1);
+}
+var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var18:ACallAssignExpr>*/;
+CHECK_NEW_parser_nodes__ACallAssignExpr(var18);
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction710> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction710#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) {
+parser__ReduceAction710__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction712#action for (self: ReduceAction712, Parser) */
+void parser__ReduceAction712__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_tassignnode4 /* var tassignnode4: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : ABraAssignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26906);
+exit(1);
+}
+var_pexprsnode3 = var_nodearraylist2;
+/* <var_pexprsnode3:nullable Object> isa nullable AExprs */
+cltype7 = type_nullable_parser_nodes__AExprs.color;
+idtype8 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_pexprsnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26908);
+exit(1);
+}
+var_tassignnode4 = var_nodearraylist3;
+/* <var_tassignnode4:nullable Object> isa nullable TAssign */
+cltype10 = type_nullable_parser_nodes__TAssign.color;
+idtype11 = type_nullable_parser_nodes__TAssign.id;
+if(var_tassignnode4 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tassignnode4->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tassignnode4->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26910);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist4;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype13 = type_nullable_parser_nodes__AExpr.color;
+idtype14 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprnode5->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26912);
+exit(1);
+}
+var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraAssignExpr__init_abraassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5) /* init_abraassignexpr on <var15:ABraAssignExpr>*/;
+CHECK_NEW_parser_nodes__ABraAssignExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction712> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction712#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction712__action(val* self, val* p0) {
+parser__ReduceAction712__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction713#action for (self: ReduceAction713, Parser) */
+void parser__ReduceAction713__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26935);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist4;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype9 = type_nullable_parser_nodes__TAttrid.color;
+idtype10 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tattridnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26937);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist5;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype12 = type_nullable_parser_nodes__AAssignOp.color;
+idtype13 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_passignopnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_passignopnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26939);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist6;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode5->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26941);
+exit(1);
+}
+var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var17:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var17);
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction713> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction713#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction713__action(val* self, val* p0) {
+parser__ReduceAction713__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */
+void parser__ReduceAction714__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var12 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var13 /* : Int */;
+long var14 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
+var_pexprnode2 = var4;
+var_tattridnode3 = var_nodearraylist1;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26962);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist2;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype7 = type_nullable_parser_nodes__AAssignOp.color;
+idtype8 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_passignopnode4->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_passignopnode4->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26964);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist3;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype10 = type_nullable_parser_nodes__AExpr.color;
+idtype11 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprnode5->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26966);
+exit(1);
+}
+var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var12:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var12);
+var_pexprnode1 = var12;
+var_node_list = var_pexprnode1;
+var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction714> */
+var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction714#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) {
+parser__ReduceAction714__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction715#action for (self: ReduceAction715, Parser) */
+void parser__ReduceAction715__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26990);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist5;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype10 = type_nullable_parser_nodes__TAttrid.color;
+idtype11 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tattridnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26992);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist6;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype13 = type_nullable_parser_nodes__AAssignOp.color;
+idtype14 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_passignopnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_passignopnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26994);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist7;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype16 = type_nullable_parser_nodes__AExpr.color;
+idtype17 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26996);
+exit(1);
+}
+var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var18:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var18);
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction715> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction715#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction715__action(val* self, val* p0) {
+parser__ReduceAction715__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction716#action for (self: ReduceAction716, Parser) */
+void parser__ReduceAction716__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var20 /* : Int */;
+long var21 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27021);
+exit(1);
+}
+var_tattridnode3 = var_nodearraylist6;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype11 = type_nullable_parser_nodes__TAttrid.color;
+idtype12 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tattridnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27023);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist7;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype14 = type_nullable_parser_nodes__AAssignOp.color;
+idtype15 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_passignopnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_passignopnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27025);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist8;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable_parser_nodes__AExpr.color;
+idtype18 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27027);
+exit(1);
+}
+var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var19:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var19);
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction716> */
+var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction716#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction716__action(val* self, val* p0) {
+parser__ReduceAction716__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction718#action for (self: ReduceAction718, Parser) */
+void parser__ReduceAction718__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var13 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var14 /* : Int */;
+long var15 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
+var_pexprnode2 = var5;
+var_tattridnode3 = var_nodearraylist2;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27049);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist3;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype8 = type_nullable_parser_nodes__AAssignOp.color;
+idtype9 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_passignopnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_passignopnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27051);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist4;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable_parser_nodes__AExpr.color;
+idtype12 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprnode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27053);
+exit(1);
+}
+var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var13:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var13);
+var_pexprnode1 = var13;
+var_node_list = var_pexprnode1;
+var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction718> */
+var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction718#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction718__action(val* self, val* p0) {
+parser__ReduceAction718__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */
+void parser__ReduceAction719__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AAttrReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
+long var15 /* : Int */;
+long var16 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
+var_pexprnode2 = var6;
+var_tattridnode3 = var_nodearraylist3;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27076);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist4;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype9 = type_nullable_parser_nodes__AAssignOp.color;
+idtype10 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_passignopnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_passignopnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27078);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist5;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable_parser_nodes__AExpr.color;
+idtype13 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27080);
+exit(1);
+}
+var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var14:AAttrReassignExpr>*/;
+CHECK_NEW_parser_nodes__AAttrReassignExpr(var14);
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction719> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction719#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) {
+parser__ReduceAction719__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */
+void parser__ReduceAction721__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var21 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27104);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist4;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype10 = type_nullable_parser_nodes__TId.color;
+idtype11 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tidnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27106);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist5;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype13 = type_nullable_parser_nodes__AExprs.color;
+idtype14 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprsnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27108);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist6;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype16 = type_nullable_parser_nodes__AAssignOp.color;
+idtype17 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_passignopnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_passignopnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27110);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist7;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype19 = type_nullable_parser_nodes__AExpr.color;
+idtype20 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_pexprnode6->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27112);
+exit(1);
+}
+var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var21:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var21);
+var_pexprnode1 = var21;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction721> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction721#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) {
+parser__ReduceAction721__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction722#action for (self: ReduceAction722, Parser) */
+void parser__ReduceAction722__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var17 /* : Int */;
+long var18 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
+var_pexprnode2 = var5;
+var_tidnode3 = var_nodearraylist1;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27135);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist2;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype8 = type_nullable_parser_nodes__AExprs.color;
+idtype9 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_pexprsnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27137);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist3;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype11 = type_nullable_parser_nodes__AAssignOp.color;
+idtype12 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_passignopnode5->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_passignopnode5->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27139);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist4;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode6->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27141);
+exit(1);
+}
+var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var16:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var16);
+var_pexprnode1 = var16;
+var_node_list = var_pexprnode1;
+var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction722> */
+var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction722#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction722__action(val* self, val* p0) {
+parser__ReduceAction722__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */
+void parser__ReduceAction723__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var19 /* : Bool */;
+int cltype20;
+int idtype21;
+val* var22 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var23 /* : Int */;
+long var24 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27167);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist5;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype11 = type_nullable_parser_nodes__TId.color;
+idtype12 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tidnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27169);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist6;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype14 = type_nullable_parser_nodes__AExprs.color;
+idtype15 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprsnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27171);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist7;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype17 = type_nullable_parser_nodes__AAssignOp.color;
+idtype18 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_passignopnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_passignopnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27173);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist8;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype20 = type_nullable_parser_nodes__AExpr.color;
+idtype21 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var19 = 1;
+} else {
+if(cltype20 >= var_pexprnode6->type->table_size) {
+var19 = 0;
+} else {
+var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
+}
+}
+if (!var19) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27175);
+exit(1);
+}
+var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var22:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var22);
+var_pexprnode1 = var22;
+var_node_list = var_pexprnode1;
+var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction723> */
+var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction723#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) {
+parser__ReduceAction723__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */
+void parser__ReduceAction724__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_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var10 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var23 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var24 /* : Int */;
+long var25 /* : 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_nodearraylist9 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var9;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var10 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27202);
+exit(1);
+}
+var_tidnode3 = var_nodearraylist6;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype12 = type_nullable_parser_nodes__TId.color;
+idtype13 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tidnode3->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27204);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist7;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype15 = type_nullable_parser_nodes__AExprs.color;
+idtype16 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprsnode4->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27206);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist8;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype18 = type_nullable_parser_nodes__AAssignOp.color;
+idtype19 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_passignopnode5->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_passignopnode5->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27208);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist9;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype21 = type_nullable_parser_nodes__AExpr.color;
+idtype22 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_pexprnode6->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27210);
+exit(1);
+}
+var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var23:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var23);
+var_pexprnode1 = var23;
+var_node_list = var_pexprnode1;
+var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction724> */
+var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction724#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) {
+parser__ReduceAction724__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */
+void parser__ReduceAction726__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_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var6 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var18 /* : Int */;
+long var19 /* : 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_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
+var_pexprnode2 = var6;
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27234);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist3;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype9 = type_nullable_parser_nodes__AExprs.color;
+idtype10 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprsnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27236);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist4;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype12 = type_nullable_parser_nodes__AAssignOp.color;
+idtype13 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_passignopnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_passignopnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27238);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist5;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode6->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27240);
+exit(1);
+}
+var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var17:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var17);
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction726> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction726#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) {
+parser__ReduceAction726__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction727#action for (self: ReduceAction727, Parser) */
+void parser__ReduceAction727__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var7 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_passignopnode5 /* var passignopnode5: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprnode6 /* var pexprnode6: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : ACallReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
+CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
+var_pexprnode2 = var7;
+var_tidnode3 = var_nodearraylist3;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27265);
+exit(1);
+}
+var_pexprsnode4 = var_nodearraylist4;
+/* <var_pexprsnode4:nullable Object> isa nullable AExprs */
+cltype10 = type_nullable_parser_nodes__AExprs.color;
+idtype11 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode4 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprsnode4->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27267);
+exit(1);
+}
+var_passignopnode5 = var_nodearraylist5;
+/* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
+cltype13 = type_nullable_parser_nodes__AAssignOp.color;
+idtype14 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode5 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_passignopnode5->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_passignopnode5->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27269);
+exit(1);
+}
+var_pexprnode6 = var_nodearraylist6;
+/* <var_pexprnode6:nullable Object> isa nullable AExpr */
+cltype16 = type_nullable_parser_nodes__AExpr.color;
+idtype17 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode6 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprnode6->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27271);
+exit(1);
+}
+var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var18:ACallReassignExpr>*/;
+CHECK_NEW_parser_nodes__ACallReassignExpr(var18);
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction727> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction727#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction727__action(val* self, val* p0) {
+parser__ReduceAction727__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction729#action for (self: ReduceAction729, Parser) */
+void parser__ReduceAction729__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_passignopnode4 /* var passignopnode4: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : ABraReassignExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27293);
+exit(1);
+}
+var_pexprsnode3 = var_nodearraylist2;
+/* <var_pexprsnode3:nullable Object> isa nullable AExprs */
+cltype7 = type_nullable_parser_nodes__AExprs.color;
+idtype8 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_pexprsnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27295);
+exit(1);
+}
+var_passignopnode4 = var_nodearraylist3;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype10 = type_nullable_parser_nodes__AAssignOp.color;
+idtype11 = type_nullable_parser_nodes__AAssignOp.id;
+if(var_passignopnode4 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_passignopnode4->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_passignopnode4->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27297);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist4;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype13 = type_nullable_parser_nodes__AExpr.color;
+idtype14 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprnode5->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27299);
+exit(1);
+}
+var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr);
+((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraReassignExpr__init_abrareassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5) /* init_abrareassignexpr on <var15:ABraReassignExpr>*/;
+CHECK_NEW_parser_nodes__ABraReassignExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction729> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction729#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction729__action(val* self, val* p0) {
+parser__ReduceAction729__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction730#action for (self: ReduceAction730, Parser) */
+void parser__ReduceAction730__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var3 /* : APlusAssignOp */;
+val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */;
+long var4 /* : Int */;
+long var5 /* : 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_nodearraylist1 = var1;
+var_tpluseqnode2 = var_nodearraylist1;
+/* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
+cltype = type_nullable_parser_nodes__TPluseq.color;
+idtype = type_nullable_parser_nodes__TPluseq.id;
+if(var_tpluseqnode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= var_tpluseqnode2->type->table_size) {
+var2 = 0;
+} else {
+var2 = var_tpluseqnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var2) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27317);
+exit(1);
+}
+var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp);
+((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on <var3:APlusAssignOp>*/;
+CHECK_NEW_parser_nodes__APlusAssignOp(var3);
+var_passignopnode1 = var3;
+var_node_list = var_passignopnode1;
+var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction730> */
+var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction730#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction730__action(val* self, val* p0) {
+parser__ReduceAction730__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction731#action for (self: ReduceAction731, Parser) */
+void parser__ReduceAction731__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var3 /* : AMinusAssignOp */;
+val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */;
+long var4 /* : Int */;
+long var5 /* : 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_nodearraylist1 = var1;
+var_tminuseqnode2 = var_nodearraylist1;
+/* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
+cltype = type_nullable_parser_nodes__TMinuseq.color;
+idtype = type_nullable_parser_nodes__TMinuseq.id;
+if(var_tminuseqnode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= var_tminuseqnode2->type->table_size) {
+var2 = 0;
+} else {
+var2 = var_tminuseqnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var2) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27332);
+exit(1);
+}
+var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp);
+((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on <var3:AMinusAssignOp>*/;
+CHECK_NEW_parser_nodes__AMinusAssignOp(var3);
+var_passignopnode1 = var3;
+var_node_list = var_passignopnode1;
+var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction731> */
+var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction731#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction731__action(val* self, val* p0) {
+parser__ReduceAction731__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction732#action for (self: ReduceAction732, Parser) */
+void parser__ReduceAction732__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var_plabelnode4 /* var plabelnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var11 /* : ADoExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
+long var12 /* : Int */;
+long var13 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var_tkwdonode2 = var_nodearraylist1;
+/* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
+cltype = type_nullable_parser_nodes__TKwdo.color;
+idtype = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwdonode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwdonode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27349);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype6 = type_nullable_parser_nodes__AExpr.color;
+idtype7 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_pexprnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27351);
+exit(1);
+}
+var_plabelnode4 = var_nodearraylist3;
+/* <var_plabelnode4:nullable Object> isa nullable ALabel */
+cltype9 = type_nullable_parser_nodes__ALabel.color;
+idtype10 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_plabelnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27353);
+exit(1);
+}
+var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
+((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4) /* init_adoexpr on <var11:ADoExpr>*/;
+CHECK_NEW_parser_nodes__ADoExpr(var11);
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction732> */
+var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction732#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction732__action(val* self, val* p0) {
+parser__ReduceAction732__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction733#action for (self: ReduceAction733, Parser) */
+void parser__ReduceAction733__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ADoExpr */;
+val* var8 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
+long var9 /* : Int */;
+long var10 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_tkwdonode2 = var_nodearraylist1;
+/* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
+cltype = type_nullable_parser_nodes__TKwdo.color;
+idtype = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwdonode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwdonode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27371);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype5 = type_nullable_parser_nodes__AExpr.color;
+idtype6 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pexprnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27373);
+exit(1);
+}
+var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
+var8 = NULL;
+((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var7, var_tkwdonode2, var_pexprnode3, var8) /* init_adoexpr on <var7:ADoExpr>*/;
+CHECK_NEW_parser_nodes__ADoExpr(var7);
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction733> */
+var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction733#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction733__action(val* self, val* p0) {
+parser__ReduceAction733__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction734#action for (self: ReduceAction734, Parser) */
+void parser__ReduceAction734__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode4 /* var pexprnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AIfExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
+long var20 /* : Int */;
+long var21 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable_parser_nodes__TKwif.color;
+idtype = type_nullable_parser_nodes__TKwif.id;
+if(var_tkwifnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_tkwifnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27397);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable_parser_nodes__AExpr.color;
+idtype12 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27399);
+exit(1);
+}
+var_pexprnode4 = var_nodearraylist6;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27401);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist8;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable_parser_nodes__AExpr.color;
+idtype18 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27403);
+exit(1);
+}
+var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
+((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on <var19:AIfExpr>*/;
+CHECK_NEW_parser_nodes__AIfExpr(var19);
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction734> */
+var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction734#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction734__action(val* self, val* p0) {
+parser__ReduceAction734__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction735#action for (self: ReduceAction735, Parser) */
+void parser__ReduceAction735__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprnode4 /* var pexprnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AIfExpr */;
+val* var15 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable_parser_nodes__TKwif.color;
+idtype = type_nullable_parser_nodes__TKwif.id;
+if(var_tkwifnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwifnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27426);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype9 = type_nullable_parser_nodes__AExpr.color;
+idtype10 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27428);
+exit(1);
+}
+var_pexprnode4 = var_nodearraylist6;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable_parser_nodes__AExpr.color;
+idtype13 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27430);
+exit(1);
+}
+var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
+var15 = NULL;
+((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15) /* init_aifexpr on <var14:AIfExpr>*/;
+CHECK_NEW_parser_nodes__AIfExpr(var14);
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction735> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction735#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction735__action(val* self, val* p0) {
+parser__ReduceAction735__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction736#action for (self: ReduceAction736, Parser) */
+void parser__ReduceAction736__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_pexprnode4 /* var pexprnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AIfExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
+long var20 /* : Int */;
+long var21 /* : 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_nodearraylist8 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var8;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable_parser_nodes__TKwif.color;
+idtype = type_nullable_parser_nodes__TKwif.id;
+if(var_tkwifnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_tkwifnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27455);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable_parser_nodes__AExpr.color;
+idtype12 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pexprnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27457);
+exit(1);
+}
+var_pexprnode4 = var_nodearraylist7;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable_parser_nodes__AExpr.color;
+idtype15 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_pexprnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27459);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist8;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable_parser_nodes__AExpr.color;
+idtype18 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27461);
+exit(1);
+}
+var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
+((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on <var19:AIfExpr>*/;
+CHECK_NEW_parser_nodes__AIfExpr(var19);
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction736> */
+var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction736#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction736__action(val* self, val* p0) {
+parser__ReduceAction736__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction737#action for (self: ReduceAction737, Parser) */
+void parser__ReduceAction737__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AIfExpr */;
+val* var15 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
+long var16 /* : Int */;
+long var17 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable_parser_nodes__TKwif.color;
+idtype = type_nullable_parser_nodes__TKwif.id;
+if(var_tkwifnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwifnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27484);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype9 = type_nullable_parser_nodes__AExpr.color;
+idtype10 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27486);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist6;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable_parser_nodes__AExpr.color;
+idtype13 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pexprnode5->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27488);
+exit(1);
+}
+var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
+var15 = NULL;
+((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var15, var_pexprnode5) /* init_aifexpr on <var14:AIfExpr>*/;
+CHECK_NEW_parser_nodes__AIfExpr(var14);
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction737> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction737#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction737__action(val* self, val* p0) {
+parser__ReduceAction737__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction738#action for (self: ReduceAction738, Parser) */
+void parser__ReduceAction738__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : AIfExpr */;
+val* var16 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
+long var17 /* : Int */;
+long var18 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable_parser_nodes__TKwif.color;
+idtype = type_nullable_parser_nodes__TKwif.id;
+if(var_tkwifnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tkwifnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwifnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27512);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype10 = type_nullable_parser_nodes__AExpr.color;
+idtype11 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27514);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist7;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype13 = type_nullable_parser_nodes__AExpr.color;
+idtype14 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pexprnode5->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27516);
+exit(1);
+}
+var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
+var16 = NULL;
+((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var15, var_tkwifnode2, var_pexprnode3, var16, var_pexprnode5) /* init_aifexpr on <var15:AIfExpr>*/;
+CHECK_NEW_parser_nodes__AIfExpr(var15);
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction738> */
+var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction738#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction738__action(val* self, val* p0) {
+parser__ReduceAction738__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction741#action for (self: ReduceAction741, Parser) */
+void parser__ReduceAction741__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var_plabelnode4 /* var plabelnode4: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var11 /* : ALoopExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
+long var12 /* : Int */;
+long var13 /* : 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_nodearraylist3 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var3;
+var_tkwloopnode2 = var_nodearraylist1;
+/* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
+cltype = type_nullable_parser_nodes__TKwloop.color;
+idtype = type_nullable_parser_nodes__TKwloop.id;
+if(var_tkwloopnode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwloopnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwloopnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27536);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype6 = type_nullable_parser_nodes__AExpr.color;
+idtype7 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_pexprnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27538);
+exit(1);
+}
+var_plabelnode4 = var_nodearraylist3;
+/* <var_plabelnode4:nullable Object> isa nullable ALabel */
+cltype9 = type_nullable_parser_nodes__ALabel.color;
+idtype10 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode4 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_plabelnode4->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27540);
+exit(1);
+}
+var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
+((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var11, var_tkwloopnode2, var_pexprnode3, var_plabelnode4) /* init_aloopexpr on <var11:ALoopExpr>*/;
+CHECK_NEW_parser_nodes__ALoopExpr(var11);
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction741> */
+var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction741#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction741__action(val* self, val* p0) {
+parser__ReduceAction741__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction742#action for (self: ReduceAction742, Parser) */
+void parser__ReduceAction742__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ALoopExpr */;
+val* var8 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
+long var9 /* : Int */;
+long var10 /* : 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_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_tkwloopnode2 = var_nodearraylist1;
+/* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
+cltype = type_nullable_parser_nodes__TKwloop.color;
+idtype = type_nullable_parser_nodes__TKwloop.id;
+if(var_tkwloopnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwloopnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwloopnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27558);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype5 = type_nullable_parser_nodes__AExpr.color;
+idtype6 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pexprnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (!var4) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27560);
+exit(1);
+}
+var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
+var8 = NULL;
+((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var7, var_tkwloopnode2, var_pexprnode3, var8) /* init_aloopexpr on <var7:ALoopExpr>*/;
+CHECK_NEW_parser_nodes__ALoopExpr(var7);
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction742> */
+var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction742#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction742__action(val* self, val* p0) {
+parser__ReduceAction742__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction743#action for (self: ReduceAction743, Parser) */
+void parser__ReduceAction743__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_plabelnode6 /* var plabelnode6: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var21 /* : AWhileExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
+long var22 /* : Int */;
+long var23 /* : 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_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_tkwwhilenode2 = var_nodearraylist1;
+/* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
+cltype = type_nullable_parser_nodes__TKwwhile.color;
+idtype = type_nullable_parser_nodes__TKwwhile.id;
+if(var_tkwwhilenode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tkwwhilenode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27583);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype10 = type_nullable_parser_nodes__AExpr.color;
+idtype11 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_pexprnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27585);
+exit(1);
+}
+var_tkwdonode4 = var_nodearraylist5;
+/* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
+cltype13 = type_nullable_parser_nodes__TKwdo.color;
+idtype14 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tkwdonode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27587);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist6;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype16 = type_nullable_parser_nodes__AExpr.color;
+idtype17 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27589);
+exit(1);
+}
+var_plabelnode6 = var_nodearraylist7;
+/* <var_plabelnode6:nullable Object> isa nullable ALabel */
+cltype19 = type_nullable_parser_nodes__ALabel.color;
+idtype20 = type_nullable_parser_nodes__ALabel.id;
+if(var_plabelnode6 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_plabelnode6->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_plabelnode6->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27591);
+exit(1);
+}
+var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
+((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var21, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6) /* init_awhileexpr on <var21:AWhileExpr>*/;
+CHECK_NEW_parser_nodes__AWhileExpr(var21);
+var_pexprnode1 = var21;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction743> */
+var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction743#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction743__action(val* self, val* p0) {
+parser__ReduceAction743__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction744#action for (self: ReduceAction744, Parser) */
+void parser__ReduceAction744__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_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pexprnode5 /* var pexprnode5: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : AWhileExpr */;
+val* var18 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
+long var19 /* : Int */;
+long var20 /* : 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_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_tkwwhilenode2 = var_nodearraylist1;
+/* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
+cltype = type_nullable_parser_nodes__TKwwhile.color;
+idtype = type_nullable_parser_nodes__TKwwhile.id;
+if(var_tkwwhilenode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwwhilenode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27615);
+exit(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype9 = type_nullable_parser_nodes__AExpr.color;
+idtype10 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27617);
+exit(1);
+}
+var_tkwdonode4 = var_nodearraylist5;
+/* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
+cltype12 = type_nullable_parser_nodes__TKwdo.color;
+idtype13 = type_nullable_parser_nodes__TKwdo.id;
+if(var_tkwdonode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tkwdonode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27619);
+exit(1);
+}
+var_pexprnode5 = var_nodearraylist6;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype15 = type_nullable_parser_nodes__AExpr.color;
+idtype16 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode5 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pexprnode5->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27621);
+exit(1);
+}
+var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
+var18 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var17, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var18) /* init_awhileexpr on <var17:AWhileExpr>*/;
+CHECK_NEW_parser_nodes__AWhileExpr(var17);
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction744> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction744#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction744__action(val* self, val* p0) {
+parser__ReduceAction744__action(self, p0);
+RET_LABEL:;
+}