c_src: update for new ffi syntax
[nit.git] / c_src / parser.sep.16.c
diff --git a/c_src/parser.sep.16.c b/c_src/parser.sep.16.c
deleted file mode 100644 (file)
index ddd36f2..0000000
+++ /dev/null
@@ -1,2211 +0,0 @@
-#include "parser.sep.0.h"
-/* method parser#ReduceAction1228#action for (self: ReduceAction1228, Parser) */
-void parser__ReduceAction1228__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_pexprnode2 /* var pexprnode2: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tattridnode3 /* var tattridnode3: nullable Object */;
-short int var5 /* : Bool */;
-int cltype6;
-int idtype7;
-val* var8 /* : AAttrExpr */;
-val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
-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_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_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) {
-var4 = 1;
-} else {
-if(cltype >= var_pexprnode2->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_pexprnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29152);
-exit(1);
-}
-var_tattridnode3 = var_nodearraylist3;
-/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
-cltype6 = type_nullable_parser_nodes__TAttrid.color;
-idtype7 = type_nullable_parser_nodes__TAttrid.id;
-if(var_tattridnode3 == NULL) {
-var5 = 1;
-} else {
-if(cltype6 >= var_tattridnode3->type->table_size) {
-var5 = 0;
-} else {
-var5 = var_tattridnode3->type->type_table[cltype6] == idtype7;
-}
-}
-if (!var5) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29154);
-exit(1);
-}
-var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
-((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var8, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var8:AAttrExpr>*/;
-CHECK_NEW_parser_nodes__AAttrExpr(var8);
-var_pexprnode1 = var8;
-var_node_list = var_pexprnode1;
-var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1228> */
-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#ReduceAction1228#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1228__action(val* self, val* p0) {
-parser__ReduceAction1228__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1231#action for (self: ReduceAction1231, Parser) */
-void parser__ReduceAction1231__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_pexprnode2 /* var pexprnode2: 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_pexprsnode4 /* var pexprsnode4: nullable Object */;
-short int var8 /* : Bool */;
-int cltype9;
-int idtype10;
-val* var11 /* : ACallExpr */;
-val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
-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_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) {
-var4 = 1;
-} else {
-if(cltype >= var_pexprnode2->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_pexprnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29172);
-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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29174);
-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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29176);
-exit(1);
-}
-var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
-((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var11:ACallExpr>*/;
-CHECK_NEW_parser_nodes__ACallExpr(var11);
-var_pexprnode1 = var11;
-var_node_list = var_pexprnode1;
-var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1231> */
-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#ReduceAction1231#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1231__action(val* self, val* p0) {
-parser__ReduceAction1231__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1232#action for (self: ReduceAction1232, Parser) */
-void parser__ReduceAction1232__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_tidnode3 /* var tidnode3: nullable Object */;
-short int var6 /* : Bool */;
-int cltype7;
-int idtype8;
-val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
-short int var9 /* : Bool */;
-int cltype10;
-int idtype11;
-val* var12 /* : ACallExpr */;
-val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
-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_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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29196);
-exit(1);
-}
-var_tidnode3 = var_nodearraylist3;
-/* <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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29198);
-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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29200);
-exit(1);
-}
-var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
-((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var12:ACallExpr>*/;
-CHECK_NEW_parser_nodes__ACallExpr(var12);
-var_pexprnode1 = var12;
-var_node_list = var_pexprnode1;
-var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1232> */
-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#ReduceAction1232#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1232__action(val* self, val* p0) {
-parser__ReduceAction1232__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1239#action for (self: ReduceAction1239, Parser) */
-void parser__ReduceAction1239__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_pexprnode2 /* var pexprnode2: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
-short int var5 /* : Bool */;
-int cltype6;
-int idtype7;
-val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
-short int var8 /* : Bool */;
-int cltype9;
-int idtype10;
-val* var11 /* : AInitExpr */;
-val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
-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_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) {
-var4 = 1;
-} else {
-if(cltype >= var_pexprnode2->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_pexprnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29219);
-exit(1);
-}
-var_tkwinitnode3 = var_nodearraylist2;
-/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
-cltype6 = type_nullable_parser_nodes__TKwinit.color;
-idtype7 = type_nullable_parser_nodes__TKwinit.id;
-if(var_tkwinitnode3 == NULL) {
-var5 = 1;
-} else {
-if(cltype6 >= var_tkwinitnode3->type->table_size) {
-var5 = 0;
-} else {
-var5 = var_tkwinitnode3->type->type_table[cltype6] == idtype7;
-}
-}
-if (!var5) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29221);
-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", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29223);
-exit(1);
-}
-var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
-((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var11:AInitExpr>*/;
-CHECK_NEW_parser_nodes__AInitExpr(var11);
-var_pexprnode1 = var11;
-var_node_list = var_pexprnode1;
-var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1239> */
-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#ReduceAction1239#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1239__action(val* self, val* p0) {
-parser__ReduceAction1239__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1263#action for (self: ReduceAction1263, Parser) */
-void parser__ReduceAction1263__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_pexprnode1 /* var pexprnode1: nullable Object */;
-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_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_pexprnode1 = var_nodearraylist1;
-var_node_list = var_pexprnode1;
-var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1263> */
-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#ReduceAction1263#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1263__action(val* self, val* p0) {
-parser__ReduceAction1263__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1264#action for (self: ReduceAction1264, Parser) */
-void parser__ReduceAction1264__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 /* : AImplicitSelfExpr */;
-val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
-long var2 /* : Int */;
-long var3 /* : Int */;
-var_p = p0;
-var = NULL;
-var_node_list = var;
-var1 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
-((void (*)(val*))(var1->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var1) /* init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/;
-CHECK_NEW_parser_nodes__AImplicitSelfExpr(var1);
-var_pexprnode1 = var1;
-var_node_list = var_pexprnode1;
-var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1264> */
-var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction1264#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1264__action(val* self, val* p0) {
-parser__ReduceAction1264__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1538#action for (self: ReduceAction1538, Parser) */
-void parser__ReduceAction1538__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_pimportnode1 /* var pimportnode1: 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_pimportnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pimportnode1 == 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_pimportnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1538> */
-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#ReduceAction1538#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1538__action(val* self, val* p0) {
-parser__ReduceAction1538__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1539#action for (self: ReduceAction1539, Parser) */
-void parser__ReduceAction1539__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pimportnode2 /* var pimportnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29280);
-exit(1);
-}
-var_pimportnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1539>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pimportnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pimportnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1539> */
-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#ReduceAction1539#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1539__action(val* self, val* p0) {
-parser__ReduceAction1539__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1540#action for (self: ReduceAction1540, Parser) */
-void parser__ReduceAction1540__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_pexterncodeblocknode1 /* var pexterncodeblocknode1: 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_pexterncodeblocknode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pexterncodeblocknode1 == 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_pexterncodeblocknode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1540> */
-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#ReduceAction1540#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1540__action(val* self, val* p0) {
-parser__ReduceAction1540__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1541#action for (self: ReduceAction1541, Parser) */
-void parser__ReduceAction1541__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29314);
-exit(1);
-}
-var_pexterncodeblocknode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1541>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pexterncodeblocknode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncodeblocknode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1541> */
-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#ReduceAction1541#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1541__action(val* self, val* p0) {
-parser__ReduceAction1541__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1542#action for (self: ReduceAction1542, Parser) */
-void parser__ReduceAction1542__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_pclassdefnode1 /* var pclassdefnode1: 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_pclassdefnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pclassdefnode1 == 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_pclassdefnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1542> */
-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#ReduceAction1542#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1542__action(val* self, val* p0) {
-parser__ReduceAction1542__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1543#action for (self: ReduceAction1543, Parser) */
-void parser__ReduceAction1543__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29348);
-exit(1);
-}
-var_pclassdefnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1543>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pclassdefnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclassdefnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1543> */
-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#ReduceAction1543#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1543__action(val* self, val* p0) {
-parser__ReduceAction1543__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1544#action for (self: ReduceAction1544, Parser) */
-void parser__ReduceAction1544__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_ppropdefnode1 /* var ppropdefnode1: 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_ppropdefnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_ppropdefnode1 == 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_ppropdefnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1544> */
-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#ReduceAction1544#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1544__action(val* self, val* p0) {
-parser__ReduceAction1544__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1545#action for (self: ReduceAction1545, Parser) */
-void parser__ReduceAction1545__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29382);
-exit(1);
-}
-var_ppropdefnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1545>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_ppropdefnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1545> */
-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#ReduceAction1545#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1545__action(val* self, val* p0) {
-parser__ReduceAction1545__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1546#action for (self: ReduceAction1546, Parser) */
-void parser__ReduceAction1546__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_psuperclassnode1 /* var psuperclassnode1: 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_psuperclassnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_psuperclassnode1 == 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_psuperclassnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1546> */
-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#ReduceAction1546#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1546__action(val* self, val* p0) {
-parser__ReduceAction1546__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1547#action for (self: ReduceAction1547, Parser) */
-void parser__ReduceAction1547__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_psuperclassnode2 /* var psuperclassnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29416);
-exit(1);
-}
-var_psuperclassnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1547>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_psuperclassnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_psuperclassnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1547> */
-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#ReduceAction1547#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1547__action(val* self, val* p0) {
-parser__ReduceAction1547__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1550#action for (self: ReduceAction1550, Parser) */
-void parser__ReduceAction1550__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_pformaldefnode1 /* var pformaldefnode1: 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_pformaldefnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pformaldefnode1 == 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_pformaldefnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1550> */
-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#ReduceAction1550#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1550__action(val* self, val* p0) {
-parser__ReduceAction1550__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1551#action for (self: ReduceAction1551, Parser) */
-void parser__ReduceAction1551__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29450);
-exit(1);
-}
-var_pformaldefnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1551>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pformaldefnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pformaldefnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1551> */
-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#ReduceAction1551#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1551__action(val* self, val* p0) {
-parser__ReduceAction1551__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1552#action for (self: ReduceAction1552, Parser) */
-void parser__ReduceAction1552__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_pparamnode1 /* var pparamnode1: 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_pparamnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pparamnode1 == 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_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1552> */
-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#ReduceAction1552#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1552__action(val* self, val* p0) {
-parser__ReduceAction1552__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1553#action for (self: ReduceAction1553, Parser) */
-void parser__ReduceAction1553__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pparamnode2 /* var pparamnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29484);
-exit(1);
-}
-var_pparamnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1553>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pparamnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1553> */
-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#ReduceAction1553#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1553__action(val* self, val* p0) {
-parser__ReduceAction1553__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1554#action for (self: ReduceAction1554, Parser) */
-void parser__ReduceAction1554__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_pexterncallnode1 /* var pexterncallnode1: 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_pexterncallnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pexterncallnode1 == 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_pexterncallnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1554> */
-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#ReduceAction1554#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1554__action(val* self, val* p0) {
-parser__ReduceAction1554__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1555#action for (self: ReduceAction1555, Parser) */
-void parser__ReduceAction1555__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29518);
-exit(1);
-}
-var_pexterncallnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1555>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pexterncallnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncallnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1555> */
-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#ReduceAction1555#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1555__action(val* self, val* p0) {
-parser__ReduceAction1555__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1557#action for (self: ReduceAction1557, Parser) */
-void parser__ReduceAction1557__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_ptypenode2 /* var ptypenode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29537);
-exit(1);
-}
-var_ptypenode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1557>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_ptypenode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1557> */
-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#ReduceAction1557#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1557__action(val* self, val* p0) {
-parser__ReduceAction1557__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1558#action for (self: ReduceAction1558, Parser) */
-void parser__ReduceAction1558__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_pexprnode1 /* var pexprnode1: 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_pexprnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_pexprnode1 == 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_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1558> */
-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#ReduceAction1558#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1558__action(val* self, val* p0) {
-parser__ReduceAction1558__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1559#action for (self: ReduceAction1559, Parser) */
-void parser__ReduceAction1559__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pexprnode2 /* var pexprnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29571);
-exit(1);
-}
-var_pexprnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1559>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pexprnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1559> */
-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#ReduceAction1559#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1559__action(val* self, val* p0) {
-parser__ReduceAction1559__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1560#action for (self: ReduceAction1560, Parser) */
-void parser__ReduceAction1560__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_listnode1 /* var listnode1: nullable Object */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-val* var4 /* : Array[Object] */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var3 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var3) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29589);
-exit(1);
-}
-var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode2, var_listnode1) /* concat on <self:ReduceAction1560>*/;
-var_listnode2 = var4;
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1560> */
-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#ReduceAction1560#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1560__action(val* self, val* p0) {
-parser__ReduceAction1560__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1561#action for (self: ReduceAction1561, Parser) */
-void parser__ReduceAction1561__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_listnode2 /* var listnode2: nullable Object */;
-short int var5 /* : Bool */;
-int cltype6;
-int idtype7;
-val* var8 /* : Array[Object] */;
-val* var9 /* : Array[Object] */;
-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_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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29604);
-exit(1);
-}
-var_listnode2 = var_nodearraylist2;
-/* <var_listnode2:nullable Object> isa Array[Object] */
-cltype6 = type_array__Arraykernel__Object.color;
-idtype7 = type_array__Arraykernel__Object.id;
-if(var_listnode2 == NULL) {
-var5 = 0;
-} else {
-if(cltype6 >= var_listnode2->type->table_size) {
-var5 = 0;
-} else {
-var5 = var_listnode2->type->type_table[cltype6] == idtype7;
-}
-}
-if (!var5) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29606);
-exit(1);
-}
-var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1561>*/;
-var_listnode3 = var8;
-var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction1561>*/;
-var_listnode3 = var9;
-var_node_list = var_listnode3;
-var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1561> */
-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#ReduceAction1561#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1561__action(val* self, val* p0) {
-parser__ReduceAction1561__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1563#action for (self: ReduceAction1563, Parser) */
-void parser__ReduceAction1563__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29622);
-exit(1);
-}
-var_pannotationnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1563>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_pannotationnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1563> */
-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#ReduceAction1563#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1563__action(val* self, val* p0) {
-parser__ReduceAction1563__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1567#action for (self: ReduceAction1567, Parser) */
-void parser__ReduceAction1567__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_patargnode2 /* var patargnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29641);
-exit(1);
-}
-var_patargnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1567>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_patargnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1567> */
-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#ReduceAction1567#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1567__action(val* self, val* p0) {
-parser__ReduceAction1567__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1571#action for (self: ReduceAction1571, Parser) */
-void parser__ReduceAction1571__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tidnode2 /* var tidnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29660);
-exit(1);
-}
-var_tidnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1571>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_tidnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1571> */
-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#ReduceAction1571#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1571__action(val* self, val* p0) {
-parser__ReduceAction1571__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1572#action for (self: ReduceAction1572, Parser) */
-void parser__ReduceAction1572__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_tcommentnode1 /* var tcommentnode1: 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_tcommentnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_tcommentnode1 == 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_tcommentnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1572> */
-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#ReduceAction1572#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1572__action(val* self, val* p0) {
-parser__ReduceAction1572__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1573#action for (self: ReduceAction1573, Parser) */
-void parser__ReduceAction1573__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29694);
-exit(1);
-}
-var_tcommentnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1573>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_tcommentnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tcommentnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1573> */
-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#ReduceAction1573#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1573__action(val* self, val* p0) {
-parser__ReduceAction1573__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1574#action for (self: ReduceAction1574, Parser) */
-void parser__ReduceAction1574__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_teolnode1 /* var teolnode1: 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_teolnode1 = var_nodearraylist1;
-var3 = NULL;
-if (var_teolnode1 == 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_teolnode1) /* add on <var_listnode2:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode2;
-var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1574> */
-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#ReduceAction1574#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1574__action(val* self, val* p0) {
-parser__ReduceAction1574__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1575#action for (self: ReduceAction1575, Parser) */
-void parser__ReduceAction1575__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_listnode1 /* var listnode1: nullable Object */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var_teolnode2 /* var teolnode2: nullable Object */;
-val* var5 /* : Array[Object] */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-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_listnode1 = var_nodearraylist1;
-/* <var_listnode1:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode1 == NULL) {
-var4 = 0;
-} else {
-if(cltype >= var_listnode1->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_listnode1->type->type_table[cltype] == idtype;
-}
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29728);
-exit(1);
-}
-var_teolnode2 = var_nodearraylist2;
-var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1575>*/;
-var_listnode3 = var5;
-var6 = NULL;
-if (var_teolnode2 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_teolnode2) /* add on <var_listnode3:Array[Object]>*/;
-} else {
-}
-var_node_list = var_listnode3;
-var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1575> */
-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#ReduceAction1575#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1575__action(val* self, val* p0) {
-parser__ReduceAction1575__action(self, p0);
-RET_LABEL:;
-}