+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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist4 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist3 = var2;
+{
+var3 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var3;
+{
+var4 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var4;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable__nit__AExpr.color;
+idtype = type_nullable__nit__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 (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7089);
+show_backtrace(1);
+}
+var_pexprsnode3 = var_nodearraylist2;
+/* <var_pexprsnode3:nullable Object> isa nullable AExprs */
+cltype7 = type_nullable__nit__AExprs.color;
+idtype8 = type_nullable__nit__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 (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7091);
+show_backtrace(1);
+}
+var_passignopnode4 = var_nodearraylist3;
+/* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
+cltype10 = type_nullable__nit__AAssignOp.color;
+idtype11 = type_nullable__nit__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 (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7093);
+show_backtrace(1);
+}
+var_pexprnode5 = var_nodearraylist4;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype13 = type_nullable__nit__AExpr.color;
+idtype14 = type_nullable__nit__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 (unlikely(!var12)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7095);
+show_backtrace(1);
+}
+var15 = NEW_nit__ABraReassignExpr(&type_nit__ABraReassignExpr);
+{
+nit__parser_prod___ABraReassignExpr___init_abrareassignexpr(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#ABraReassignExpr#init_abrareassignexpr on <var15:ABraReassignExpr>*/
+}
+var_pexprnode1 = var15;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction246> */
+{
+var17 = nit___nit__Parser___go_to(var_p, var16);
+}
+{
+nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction247#action for (self: ReduceAction247, Parser) */
+void nit__parser___nit__parser__ReduceAction247___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var1;
+var_tpluseqnode2 = var_nodearraylist1;
+/* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
+cltype = type_nullable__nit__TPluseq.color;
+idtype = type_nullable__nit__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 (unlikely(!var2)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7113);
+show_backtrace(1);
+}
+var3 = NEW_nit__APlusAssignOp(&type_nit__APlusAssignOp);
+{
+nit__parser_prod___APlusAssignOp___init_aplusassignop(var3, var_tpluseqnode2); /* Direct call parser_prod#APlusAssignOp#init_aplusassignop on <var3:APlusAssignOp>*/
+}
+var_passignopnode1 = var3;
+var_node_list = var_passignopnode1;
+var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction247> */
+{
+var5 = nit___nit__Parser___go_to(var_p, var4);
+}
+{
+nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction248#action for (self: ReduceAction248, Parser) */
+void nit__parser___nit__parser__ReduceAction248___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var1;
+var_tminuseqnode2 = var_nodearraylist1;
+/* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
+cltype = type_nullable__nit__TMinuseq.color;
+idtype = type_nullable__nit__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 (unlikely(!var2)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7128);
+show_backtrace(1);
+}
+var3 = NEW_nit__AMinusAssignOp(&type_nit__AMinusAssignOp);
+{
+nit__parser_prod___AMinusAssignOp___init_aminusassignop(var3, var_tminuseqnode2); /* Direct call parser_prod#AMinusAssignOp#init_aminusassignop on <var3:AMinusAssignOp>*/
+}
+var_passignopnode1 = var3;
+var_node_list = var_passignopnode1;
+var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction248> */
+{
+var5 = nit___nit__Parser___go_to(var_p, var4);
+}
+{
+nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction249#action for (self: ReduceAction249, Parser) */
+void nit__parser___nit__parser__ReduceAction249___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist3 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var2;
+{
+var3 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var3;
+var_tkwdonode2 = var_nodearraylist1;
+/* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
+cltype = type_nullable__nit__TKwdo.color;
+idtype = type_nullable__nit__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 (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7145);
+show_backtrace(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype6 = type_nullable__nit__AExpr.color;
+idtype7 = type_nullable__nit__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 (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7147);
+show_backtrace(1);
+}
+var_plabelnode4 = var_nodearraylist3;
+/* <var_plabelnode4:nullable Object> isa nullable ALabel */
+cltype9 = type_nullable__nit__ALabel.color;
+idtype10 = type_nullable__nit__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 (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7149);
+show_backtrace(1);
+}
+var11 = NEW_nit__ADoExpr(&type_nit__ADoExpr);
+{
+nit__parser_prod___ADoExpr___init_adoexpr(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod#ADoExpr#init_adoexpr on <var11:ADoExpr>*/
+}
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction249> */
+{
+var13 = nit___nit__Parser___go_to(var_p, var12);
+}
+{
+nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction250#action for (self: ReduceAction250, Parser) */
+void nit__parser___nit__parser__ReduceAction250___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tkwdonode2 = var_nodearraylist1;
+/* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
+cltype = type_nullable__nit__TKwdo.color;
+idtype = type_nullable__nit__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 (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7167);
+show_backtrace(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype5 = type_nullable__nit__AExpr.color;
+idtype6 = type_nullable__nit__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 (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7169);
+show_backtrace(1);
+}
+var7 = NEW_nit__ADoExpr(&type_nit__ADoExpr);
+var8 = NULL;
+{
+nit__parser_prod___ADoExpr___init_adoexpr(var7, var_tkwdonode2, var_pexprnode3, var8); /* Direct call parser_prod#ADoExpr#init_adoexpr on <var7:ADoExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction250> */
+{
+var10 = nit___nit__Parser___go_to(var_p, var9);
+}
+{
+nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction251#action for (self: ReduceAction251, Parser) */
+void nit__parser___nit__parser__ReduceAction251___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist8 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist7 = var2;
+{
+var3 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist6 = var3;
+{
+var4 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist5 = var4;
+{
+var5 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist4 = var5;
+{
+var6 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist3 = var6;
+{
+var7 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var7;
+{
+var8 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var8;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable__nit__TKwif.color;
+idtype = type_nullable__nit__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 (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7193);
+show_backtrace(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype11 = type_nullable__nit__AExpr.color;
+idtype12 = type_nullable__nit__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 (unlikely(!var10)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7195);
+show_backtrace(1);
+}
+var_pexprnode4 = var_nodearraylist6;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype14 = type_nullable__nit__AExpr.color;
+idtype15 = type_nullable__nit__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 (unlikely(!var13)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7197);
+show_backtrace(1);
+}
+var_pexprnode5 = var_nodearraylist8;
+/* <var_pexprnode5:nullable Object> isa nullable AExpr */
+cltype17 = type_nullable__nit__AExpr.color;
+idtype18 = type_nullable__nit__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 (unlikely(!var16)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7199);
+show_backtrace(1);
+}
+var19 = NEW_nit__AIfExpr(&type_nit__AIfExpr);
+{
+nit__parser_prod___AIfExpr___init_aifexpr(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var19:AIfExpr>*/
+}
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction251> */
+{
+var21 = nit___nit__Parser___go_to(var_p, var20);
+}
+{
+nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction252#action for (self: ReduceAction252, Parser) */
+void nit__parser___nit__parser__ReduceAction252___nit__parser_work__ReduceAction__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 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist6 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist5 = var2;
+{
+var3 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist4 = var3;
+{
+var4 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist3 = var4;
+{
+var5 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var5;
+{
+var6 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var6;
+var_tkwifnode2 = var_nodearraylist1;
+/* <var_tkwifnode2:nullable Object> isa nullable TKwif */
+cltype = type_nullable__nit__TKwif.color;
+idtype = type_nullable__nit__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 (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7222);
+show_backtrace(1);
+}
+var_pexprnode3 = var_nodearraylist3;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype9 = type_nullable__nit__AExpr.color;
+idtype10 = type_nullable__nit__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 (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7224);
+show_backtrace(1);
+}
+var_pexprnode4 = var_nodearraylist6;
+/* <var_pexprnode4:nullable Object> isa nullable AExpr */
+cltype12 = type_nullable__nit__AExpr.color;
+idtype13 = type_nullable__nit__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 (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7226);
+show_backtrace(1);
+}
+var14 = NEW_nit__AIfExpr(&type_nit__AIfExpr);
+var15 = NULL;
+{
+nit__parser_prod___AIfExpr___init_aifexpr(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var14:AIfExpr>*/
+}
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction252> */
+{
+var17 = nit___nit__Parser___go_to(var_p, var16);
+}
+{
+nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction253#action for (self: ReduceAction253, Parser) */
+void nit__parser___nit__parser__ReduceAction253___nit__parser_work__ReduceAction__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 */;