c_src: update for new ffi syntax
[nit.git] / c_src / parser.sep.3.c
index 54515de..93b72d2 100644 (file)
@@ -1,542 +1,4 @@
 #include "parser.sep.0.h"
-/* method parser#Parser#build_reduce_table for (self: Object) */
-void VIRTUAL_parser__Parser__build_reduce_table(val* self) {
-parser__Parser__build_reduce_table(self);
-RET_LABEL:;
-}
-/* method parser#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
-void parser__ComputeProdLocationVisitor__visit(val* self, val* p0) {
-val* var_n /* var n: ANode */;
-short int var /* : Bool */;
-int cltype;
-int idtype;
-val* var1 /* : Location */;
-val* var_loc /* var loc: Location */;
-val* var2 /* : Array[Prod] */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-val* var5 /* : Array[Prod] */;
-val* var6 /* : Iterator[nullable Object] */;
-short int var7 /* : Bool */;
-val* var8 /* : nullable Object */;
-val* var_no /* var no: Prod */;
-val* var9 /* : Array[Prod] */;
-val* var10 /* : Array[Prod] */;
-short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var13 /* : Location */;
-val* var14 /* : nullable SourceFile */;
-long var15 /* : Int */;
-long var16 /* : Int */;
-long var17 /* : Int */;
-long var18 /* : Int */;
-val* var_loco /* var loco: Location */;
-val* var19 /* : Array[Prod] */;
-val* var20 /* : Iterator[nullable Object] */;
-short int var21 /* : Bool */;
-val* var22 /* : nullable Object */;
-val* var_no23 /* var no: Prod */;
-val* var25 /* : Array[Prod] */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-val* var29 /* : Array[Prod] */;
-val* var30 /* : nullable Location */;
-val* var_startl /* var startl: nullable Location */;
-val* var31 /* : null */;
-short int var32 /* : Bool */;
-val* var33 /* : nullable Location */;
-val* var_endl /* var endl: nullable Location */;
-val* var34 /* : null */;
-short int var35 /* : Bool */;
-val* var36 /* : Location */;
-val* var37 /* : nullable SourceFile */;
-long var38 /* : Int */;
-long var39 /* : Int */;
-long var40 /* : Int */;
-long var41 /* : Int */;
-val* var42 /* : Array[Prod] */;
-short int var43 /* : Bool */;
-short int var44 /* : Bool */;
-val* var45 /* : Location */;
-val* var46 /* : nullable SourceFile */;
-long var47 /* : Int */;
-long var48 /* : Int */;
-long var49 /* : Int */;
-long var50 /* : Int */;
-val* var_loc51 /* var loc: Location */;
-val* var52 /* : Array[Prod] */;
-val* var53 /* : Iterator[nullable Object] */;
-short int var54 /* : Bool */;
-val* var55 /* : nullable Object */;
-val* var_no56 /* var no: Prod */;
-val* var58 /* : Array[Prod] */;
-val* var59 /* : Array[Prod] */;
-var_n = p0;
-/* <var_n:ANode> isa Token */
-cltype = type_parser_nodes__Token.color;
-idtype = type_parser_nodes__Token.id;
-if(cltype >= var_n->type->table_size) {
-var = 0;
-} else {
-var = var_n->type->type_table[cltype] == idtype;
-}
-if (var){
-var1 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__location]))(var_n) /* location on <var_n:ANode(Token)>*/;
-var_loc = var1;
-self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val = var_loc; /* _last_location on <self:ComputeProdLocationVisitor> */
-var2 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1763);
-exit(1);
-}
-var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on <var2:Array[Prod]>*/;
-var4 = !var3;
-if (var4){
-var5 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
-if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1764);
-exit(1);
-}
-var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Array[Prod]>*/;
-for(;;) {
-var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
-if(!var7) break;
-var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
-var_no = var8;
-var_no->attrs[COLOR_parser__Prod___first_location].val = var_loc; /* _first_location on <var_no:Prod> */
-CONTINUE_label: (void)0;
-((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var9 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
-if (var9 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1767);
-exit(1);
-}
-((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var9) /* clear on <var9:Array[Prod]>*/;
-} else {
-}
-var10 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var10 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1771);
-exit(1);
-}
-var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var10) /* is_empty on <var10:Array[Prod]>*/;
-var12 = !var11;
-if (var12){
-var13 = NEW_location__Location(&type_location__Location);
-var14 = ((val* (*)(val*))(var_loc->class->vft[COLOR_location__Location__file]))(var_loc) /* file on <var_loc:Location>*/;
-var15 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
-var16 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
-var17 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
-var18 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
-((void (*)(val*, val*, long, long, long, long))(var13->class->vft[COLOR_location__Location__init]))(var13, var14, var15, var16, var17, var18) /* init on <var13:Location>*/;
-CHECK_NEW_location__Location(var13);
-var_loco = var13;
-var19 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var19 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1773);
-exit(1);
-}
-var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on <var19:Array[Prod]>*/;
-for(;;) {
-var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
-if(!var21) break;
-var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on <var20:Iterator[nullable Object]>*/;
-var_no23 = var22;
-((void (*)(val*, val*))(var_no23->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no23, var_loco) /* location= on <var_no23:Prod>*/;
-CONTINUE_label24: (void)0;
-((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on <var20:Iterator[nullable Object]>*/;
-}
-BREAK_label24: (void)0;
-var25 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var25 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1776);
-exit(1);
-}
-((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var25) /* clear on <var25:Array[Prod]>*/;
-} else {
-}
-} else {
-/* <var_n:ANode> isa Prod */
-cltype27 = type_parser_nodes__Prod.color;
-idtype28 = type_parser_nodes__Prod.id;
-if(cltype27 >= var_n->type->table_size) {
-var26 = 0;
-} else {
-var26 = var_n->type->type_table[cltype27] == idtype28;
-}
-if (!var26) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1779);
-exit(1);
-}
-var29 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
-if (var29 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1780);
-exit(1);
-}
-((void (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var29, var_n) /* add on <var29:Array[Prod]>*/;
-((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode(Prod)>*/;
-var30 = var_n->attrs[COLOR_parser__Prod___first_location].val; /* _first_location on <var_n:ANode(Prod)> */
-var_startl = var30;
-var31 = NULL;
-if (var_startl == NULL) {
-var32 = 0; /* is null */
-} else {
-var32 = 1; /* arg is null and recv is not */
-}
-if (var32){
-var33 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val; /* _last_location on <self:ComputeProdLocationVisitor> */
-var_endl = var33;
-var34 = NULL;
-if (var_endl == NULL) {
-var35 = 0; /* is null */
-} else {
-var35 = 1; /* arg is null and recv is not */
-}
-if (!var35) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1788);
-exit(1);
-}
-var36 = NEW_location__Location(&type_location__Location);
-var37 = ((val* (*)(val*))(var_startl->class->vft[COLOR_location__Location__file]))(var_startl) /* file on <var_startl:nullable Location(Location)>*/;
-var38 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__line_start]))(var_startl) /* line_start on <var_startl:nullable Location(Location)>*/;
-var39 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
-var40 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__column_start]))(var_startl) /* column_start on <var_startl:nullable Location(Location)>*/;
-var41 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
-((void (*)(val*, val*, long, long, long, long))(var36->class->vft[COLOR_location__Location__init]))(var36, var37, var38, var39, var40, var41) /* init on <var36:Location>*/;
-CHECK_NEW_location__Location(var36);
-((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_n, var36) /* location= on <var_n:ANode(Prod)>*/;
-var42 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var42 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1792);
-exit(1);
-}
-var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var42) /* is_empty on <var42:Array[Prod]>*/;
-var44 = !var43;
-if (var44){
-var45 = NEW_location__Location(&type_location__Location);
-var46 = ((val* (*)(val*))(var_endl->class->vft[COLOR_location__Location__file]))(var_endl) /* file on <var_endl:nullable Location(Location)>*/;
-var47 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
-var48 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
-var49 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
-var50 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
-((void (*)(val*, val*, long, long, long, long))(var45->class->vft[COLOR_location__Location__init]))(var45, var46, var47, var48, var49, var50) /* init on <var45:Location>*/;
-CHECK_NEW_location__Location(var45);
-var_loc51 = var45;
-var52 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var52 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1794);
-exit(1);
-}
-var53 = ((val* (*)(val*))(var52->class->vft[COLOR_abstract_collection__Collection__iterator]))(var52) /* iterator on <var52:Array[Prod]>*/;
-for(;;) {
-var54 = ((short int (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var53) /* is_ok on <var53:Iterator[nullable Object]>*/;
-if(!var54) break;
-var55 = ((val* (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__item]))(var53) /* item on <var53:Iterator[nullable Object]>*/;
-var_no56 = var55;
-((void (*)(val*, val*))(var_no56->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no56, var_loc51) /* location= on <var_no56:Prod>*/;
-CONTINUE_label57: (void)0;
-((void (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__next]))(var53) /* next on <var53:Iterator[nullable Object]>*/;
-}
-BREAK_label57: (void)0;
-var58 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var58 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1798);
-exit(1);
-}
-((void (*)(val*))(var58->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var58) /* clear on <var58:Array[Prod]>*/;
-} else {
-}
-} else {
-var59 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
-if (var59 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1802);
-exit(1);
-}
-((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var_n) /* add on <var59:Array[Prod]>*/;
-}
-}
-RET_LABEL:;
-}
-/* method parser#ComputeProdLocationVisitor#visit for (self: Object, ANode) */
-void VIRTUAL_parser__ComputeProdLocationVisitor__visit(val* self, val* p0) {
-parser__ComputeProdLocationVisitor__visit(self, p0);
-RET_LABEL:;
-}
-/* method parser#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
-void parser__ComputeProdLocationVisitor__init(val* self) {
-((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:ComputeProdLocationVisitor>*/;
-RET_LABEL:;
-}
-/* method parser#ComputeProdLocationVisitor#init for (self: Object) */
-void VIRTUAL_parser__ComputeProdLocationVisitor__init(val* self) {
-parser__ComputeProdLocationVisitor__init(self);
-RET_LABEL:;
-}
-/* method parser#ReduceAction#action for (self: ReduceAction, Parser) */
-void parser__ReduceAction__action(val* self, val* p0) {
-const char* var_class_name;
-var_class_name = self == NULL ? "null" : self->type->name;
-fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "action", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1812);
-exit(1);
-RET_LABEL:;
-}
-/* method parser#ReduceAction#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction__action(val* self, val* p0) {
-parser__ReduceAction__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
-val* parser__ReduceAction__concat(val* self, val* p0, val* p1) {
-val* var /* : Array[Object] */;
-val* var_l1 /* var l1: Array[Object] */;
-val* var_l2 /* var l2: Array[Object] */;
-short int var1 /* : Bool */;
-var_l1 = p0;
-var_l2 = p1;
-var1 = ((short int (*)(val*))(var_l1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_l1) /* is_empty on <var_l1:Array[Object]>*/;
-if (var1){
-var = var_l2;
-goto RET_LABEL;
-} else {
-}
-((void (*)(val*, val*))(var_l1->class->vft[COLOR_abstract_collection__Sequence__append]))(var_l1, var_l2) /* append on <var_l1:Array[Object]>*/;
-var = var_l1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method parser#ReduceAction#concat for (self: Object, Array[Object], Array[Object]): Array[Object] */
-val* VIRTUAL_parser__ReduceAction__concat(val* self, val* p0, val* p1) {
-val* var /* : Array[Object] */;
-val* var1 /* : Array[Object] */;
-var1 = parser__ReduceAction__concat(self, p0, p1);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser#ReduceAction#init for (self: ReduceAction, Int) */
-void parser__ReduceAction__init(val* self, long p0) {
-long var_g /* var g: Int */;
-var_g = p0;
-self->attrs[COLOR_parser__ReduceAction___goto].l = var_g; /* _goto on <self:ReduceAction> */
-RET_LABEL:;
-}
-/* method parser#ReduceAction#init for (self: Object, Int) */
-void VIRTUAL_parser__ReduceAction__init(val* self, long p0) {
-parser__ReduceAction__init(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction0#action for (self: ReduceAction0, Parser) */
-void parser__ReduceAction0__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 /* : Array[Object] */;
-val* var_listnode3 /* var listnode3: Array[Object] */;
-val* var2 /* : Array[Object] */;
-val* var_listnode4 /* var listnode4: Array[Object] */;
-val* var3 /* : Array[Object] */;
-val* var_listnode5 /* var listnode5: Array[Object] */;
-val* var4 /* : AModule */;
-val* var5 /* : null */;
-val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
-long var6 /* : Int */;
-long var7 /* : Int */;
-var_p = p0;
-var = NULL;
-var_node_list = var;
-var1 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
-var_listnode3 = 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_listnode4 = 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_listnode5 = var3;
-var4 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
-var5 = NULL;
-((void (*)(val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var4, var5, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on <var4:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var4);
-var_pmodulenode1 = var4;
-var_node_list = var_pmodulenode1;
-var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction0> */
-var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction0#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction0__action(val* self, val* p0) {
-parser__ReduceAction0__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction1#action for (self: ReduceAction1, Parser) */
-void parser__ReduceAction1__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_listnode3 /* var listnode3: Array[Object] */;
-val* var3 /* : Array[Object] */;
-val* var_listnode4 /* var listnode4: Array[Object] */;
-val* var4 /* : Array[Object] */;
-val* var_listnode5 /* var listnode5: Array[Object] */;
-val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
-short int var5 /* : Bool */;
-int cltype;
-int idtype;
-val* var6 /* : AModule */;
-val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
-long var7 /* : Int */;
-long var8 /* : 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_listnode3 = 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_listnode4 = var3;
-var4 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
-var_listnode5 = var4;
-var_pmoduledeclnode2 = var_nodearraylist1;
-/* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
-cltype = type_nullable_parser_nodes__AModuledecl.color;
-idtype = type_nullable_parser_nodes__AModuledecl.id;
-if(var_pmoduledeclnode2 == NULL) {
-var5 = 1;
-} else {
-if(cltype >= var_pmoduledeclnode2->type->table_size) {
-var5 = 0;
-} else {
-var5 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var5) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1851);
-exit(1);
-}
-var6 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
-((void (*)(val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var6, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on <var6:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var6);
-var_pmodulenode1 = var6;
-var_node_list = var_pmodulenode1;
-var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1> */
-var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction1#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction1__action(val* self, val* p0) {
-parser__ReduceAction1__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction2#action for (self: ReduceAction2, Parser) */
-void parser__ReduceAction2__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_listnode4 /* var listnode4: Array[Object] */;
-val* var3 /* : Array[Object] */;
-val* var_listnode5 /* var listnode5: Array[Object] */;
-val* var4 /* : Array[Object] */;
-val* var_listnode6 /* var listnode6: Array[Object] */;
-val* var_listnode3 /* var listnode3: nullable Object */;
-short int var5 /* : Bool */;
-int cltype;
-int idtype;
-val* var6 /* : Array[Object] */;
-val* var7 /* : AModule */;
-val* var8 /* : null */;
-val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
-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_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_listnode4 = 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_listnode5 = var3;
-var4 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
-var_listnode6 = var4;
-var_listnode3 = var_nodearraylist1;
-/* <var_listnode3:nullable Object> isa Array[Object] */
-cltype = type_array__Arraykernel__Object.color;
-idtype = type_array__Arraykernel__Object.id;
-if(var_listnode3 == NULL) {
-var5 = 0;
-} else {
-if(cltype >= var_listnode3->type->table_size) {
-var5 = 0;
-} else {
-var5 = var_listnode3->type->type_table[cltype] == idtype;
-}
-}
-if (!var5) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1872);
-exit(1);
-}
-var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction2>*/;
-var_listnode4 = var6;
-var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
-var8 = NULL;
-((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode4, var_listnode5, var_listnode6) /* init_amodule on <var7:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var7);
-var_pmodulenode1 = var7;
-var_node_list = var_pmodulenode1;
-var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction2> */
-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#ReduceAction2#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction2__action(val* self, val* p0) {
-parser__ReduceAction2__action(self, p0);
-RET_LABEL:;
-}
 /* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */
 void parser__ReduceAction3__action(val* self, val* p0) {
 val* var_p /* var p: Parser */;
@@ -574,15 +36,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -599,8 +58,8 @@ var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1895);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1881);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -617,14 +76,13 @@ var7 = var_listnode3->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1897);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1883);
+show_backtrace(1);
 }
 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction3>*/;
 var_listnode4 = var10;
 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode6) /* init_amodule on <var11:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var11);
 var_pmodulenode1 = var11;
 var_node_list = var_pmodulenode1;
 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction3> */
@@ -667,15 +125,12 @@ var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode3 = 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_listnode5 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode6 = var4;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -692,15 +147,14 @@ var5 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var5) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1919);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1905);
+show_backtrace(1);
 }
 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction4>*/;
 var_listnode5 = var6;
 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var8 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on <var7:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var7);
 var_pmodulenode1 = var7;
 var_node_list = var_pmodulenode1;
 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction4> */
@@ -750,15 +204,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -775,8 +226,8 @@ var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1942);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1928);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -793,14 +244,13 @@ var7 = var_listnode4->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1944);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1930);
+show_backtrace(1);
 }
 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction5>*/;
 var_listnode5 = var10;
 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on <var11:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var11);
 var_pmodulenode1 = var11;
 var_node_list = var_pmodulenode1;
 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction5> */
@@ -852,15 +302,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode6 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -877,8 +324,8 @@ var6 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1967);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1953);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction6>*/;
 var_listnode4 = var7;
@@ -897,15 +344,14 @@ var8 = var_listnode5->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1970);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1956);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction6>*/;
 var_listnode6 = var11;
 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var13 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on <var12:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var12);
 var_pmodulenode1 = var12;
 var_node_list = var_pmodulenode1;
 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction6> */
@@ -964,15 +410,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -989,8 +432,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1994);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1980);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -1007,8 +450,8 @@ var8 = var_listnode3->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1996);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1982);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction7>*/;
 var_listnode4 = var11;
@@ -1027,14 +470,13 @@ var12 = var_listnode5->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1999);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1985);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction7>*/;
 var_listnode6 = var15;
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction7> */
@@ -1077,15 +519,12 @@ var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode3 = 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode6 = var4;
 var_listnode5 = var_nodearraylist1;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -1102,15 +541,14 @@ var5 = var_listnode5->type->type_table[cltype] == idtype;
 }
 if (!var5) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2021);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2007);
+show_backtrace(1);
 }
 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction8>*/;
 var_listnode6 = var6;
 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var8 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var7:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var7);
 var_pmodulenode1 = var7;
 var_node_list = var_pmodulenode1;
 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction8> */
@@ -1160,15 +598,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -1185,8 +620,8 @@ var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2044);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2030);
+show_backtrace(1);
 }
 var_listnode5 = var_nodearraylist2;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -1203,14 +638,13 @@ var7 = var_listnode5->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2046);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2032);
+show_backtrace(1);
 }
 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction9>*/;
 var_listnode6 = var10;
 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var11:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var11);
 var_pmodulenode1 = var11;
 var_node_list = var_pmodulenode1;
 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction9> */
@@ -1262,15 +696,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -1287,8 +718,8 @@ var6 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2069);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2055);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction10>*/;
 var_listnode4 = var7;
@@ -1307,15 +738,14 @@ var8 = var_listnode6->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2072);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2058);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction10>*/;
 var_listnode7 = var11;
 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var13 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var12:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var12);
 var_pmodulenode1 = var12;
 var_node_list = var_pmodulenode1;
 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction10> */
@@ -1374,15 +804,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -1399,8 +826,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2096);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2082);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -1417,8 +844,8 @@ var8 = var_listnode3->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2098);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2084);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction11>*/;
 var_listnode4 = var11;
@@ -1437,14 +864,13 @@ var12 = var_listnode6->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2101);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2087);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction11>*/;
 var_listnode7 = var15;
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction11> */
@@ -1496,15 +922,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -1521,8 +944,8 @@ var6 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2124);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2110);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction12>*/;
 var_listnode5 = var7;
@@ -1541,15 +964,14 @@ var8 = var_listnode6->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2127);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2113);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction12>*/;
 var_listnode7 = var11;
 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var13 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var12:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var12);
 var_pmodulenode1 = var12;
 var_node_list = var_pmodulenode1;
 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction12> */
@@ -1608,15 +1030,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -1633,8 +1052,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2151);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2137);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -1651,8 +1070,8 @@ var8 = var_listnode4->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2153);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2139);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction13>*/;
 var_listnode5 = var11;
@@ -1671,14 +1090,13 @@ var12 = var_listnode6->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2156);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2142);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction13>*/;
 var_listnode7 = var15;
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction13> */
@@ -1739,15 +1157,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode8 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -1764,8 +1179,8 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2180);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2166);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction14>*/;
 var_listnode4 = var8;
@@ -1784,8 +1199,8 @@ var9 = var_listnode5->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2183);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2169);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction14>*/;
 var_listnode6 = var12;
@@ -1804,15 +1219,14 @@ var13 = var_listnode7->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2186);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2172);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction14>*/;
 var_listnode8 = var16;
 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var18 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var17:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var17);
 var_pmodulenode1 = var17;
 var_node_list = var_pmodulenode1;
 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction14> */
@@ -1880,15 +1294,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode8 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -1905,8 +1316,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2211);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2197);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -1923,8 +1334,8 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2213);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2199);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction15>*/;
 var_listnode4 = var12;
@@ -1943,8 +1354,8 @@ var13 = var_listnode5->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2216);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2202);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction15>*/;
 var_listnode6 = var16;
@@ -1963,14 +1374,13 @@ var17 = var_listnode7->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2219);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2205);
+show_backtrace(1);
 }
 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction15>*/;
 var_listnode8 = var20;
 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var21:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var21);
 var_pmodulenode1 = var21;
 var_node_list = var_pmodulenode1;
 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction15> */
@@ -2019,19 +1429,15 @@ var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode3 = 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode8 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode6 = var_nodearraylist1;
 /* <var_listnode6:nullable Object> isa Array[Object] */
@@ -2048,14 +1454,13 @@ var6 = var_listnode6->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2242);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2228);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction16>*/;
 var_listnode7 = var7;
 var8 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var8->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var8, var_listnode7) /* init_atopclassdef on <var8:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var8);
 var_pclassdefnode5 = var8;
 var9 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -2070,7 +1475,6 @@ if (var10){
 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var12 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var12, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on <var11:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var11);
 var_pmodulenode1 = var11;
 var_node_list = var_pmodulenode1;
 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction16> */
@@ -2126,15 +1530,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode8 = var5;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -2151,12 +1552,11 @@ var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2271);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2257);
+show_backtrace(1);
 }
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode7 = var7;
 var_listnode6 = var_nodearraylist2;
 /* <var_listnode6:nullable Object> isa Array[Object] */
@@ -2173,14 +1573,13 @@ var8 = var_listnode6->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2274);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2260);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction17>*/;
 var_listnode7 = var11;
 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode7) /* init_atopclassdef on <var12:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var12);
 var_pclassdefnode5 = var12;
 var13 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -2194,7 +1593,6 @@ if (var14){
 }
 var15 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var15, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on <var15:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var15);
 var_pmodulenode1 = var15;
 var_node_list = var_pmodulenode1;
 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction17> */
@@ -2252,15 +1650,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode9 = var5;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -2277,14 +1672,13 @@ var6 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2303);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2289);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction18>*/;
 var_listnode4 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode8 = var8;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -2301,14 +1695,13 @@ var9 = var_listnode7->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2307);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2293);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction18>*/;
 var_listnode8 = var12;
 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var13);
 var_pclassdefnode6 = var13;
 var14 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -2323,7 +1716,6 @@ if (var15){
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var17 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction18> */
@@ -2388,15 +1780,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode9 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -2413,8 +1802,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2337);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2323);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -2431,14 +1820,13 @@ var8 = var_listnode3->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2339);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2325);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction19>*/;
 var_listnode4 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -2455,14 +1843,13 @@ var13 = var_listnode7->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2343);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2329);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction19>*/;
 var_listnode8 = var16;
 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var17);
 var_pclassdefnode6 = var17;
 var18 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -2476,7 +1863,6 @@ if (var19){
 }
 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on <var20:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var20);
 var_pmodulenode1 = var20;
 var_node_list = var_pmodulenode1;
 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction19> */
@@ -2534,15 +1920,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode9 = var5;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -2559,14 +1942,13 @@ var6 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2372);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2358);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction20>*/;
 var_listnode5 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode8 = var8;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -2583,14 +1965,13 @@ var9 = var_listnode7->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2376);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2362);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction20>*/;
 var_listnode8 = var12;
 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var13);
 var_pclassdefnode6 = var13;
 var14 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -2605,7 +1986,6 @@ if (var15){
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var17 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction20> */
@@ -2670,15 +2050,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode9 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -2695,8 +2072,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2406);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2392);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -2713,14 +2090,13 @@ var8 = var_listnode4->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2408);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2394);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction21>*/;
 var_listnode5 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -2737,14 +2113,13 @@ var13 = var_listnode7->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2412);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2398);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction21>*/;
 var_listnode8 = var16;
 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var17);
 var_pclassdefnode6 = var17;
 var18 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -2758,7 +2133,6 @@ if (var19){
 }
 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on <var20:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var20);
 var_pmodulenode1 = var20;
 var_node_list = var_pmodulenode1;
 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction21> */
@@ -2825,15 +2199,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -2850,8 +2221,8 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2442);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2428);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction22>*/;
 var_listnode4 = var8;
@@ -2870,14 +2241,13 @@ var9 = var_listnode5->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2445);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2431);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction22>*/;
 var_listnode6 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode9 = var13;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -2894,14 +2264,13 @@ var14 = var_listnode8->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2449);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2435);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction22>*/;
 var_listnode9 = var17;
 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var18);
 var_pclassdefnode7 = var18;
 var19 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -2916,7 +2285,6 @@ if (var20){
 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var22 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on <var21:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var21);
 var_pmodulenode1 = var21;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction22> */
@@ -2990,15 +2358,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -3015,8 +2380,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2480);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2466);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -3033,8 +2398,8 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2482);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2468);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction23>*/;
 var_listnode4 = var12;
@@ -3053,14 +2418,13 @@ var13 = var_listnode5->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2485);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2471);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction23>*/;
 var_listnode6 = var16;
 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
-CHECK_NEW_array__Array(var17);
 var_listnode9 = var17;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -3077,14 +2441,13 @@ var18 = var_listnode8->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2489);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2475);
+show_backtrace(1);
 }
 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction23>*/;
 var_listnode9 = var21;
 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var22);
 var_pclassdefnode7 = var22;
 var23 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -3098,7 +2461,6 @@ if (var24){
 }
 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on <var25:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var25);
 var_pmodulenode1 = var25;
 var_node_list = var_pmodulenode1;
 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction23> */
@@ -3156,15 +2518,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode9 = var5;
 var_listnode5 = var_nodearraylist1;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -3181,12 +2540,11 @@ var6 = var_listnode5->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2518);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2504);
+show_backtrace(1);
 }
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode8 = var7;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -3203,14 +2561,13 @@ var8 = var_listnode7->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2521);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2507);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction24>*/;
 var_listnode8 = var11;
 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode8) /* init_atopclassdef on <var12:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var12);
 var_pclassdefnode6 = var12;
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction24>*/;
 var_listnode9 = var13;
@@ -3227,7 +2584,6 @@ if (var15){
 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var17 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var16:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var16);
 var_pmodulenode1 = var16;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction24> */
@@ -3292,15 +2648,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode9 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -3317,8 +2670,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2552);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2538);
+show_backtrace(1);
 }
 var_listnode5 = var_nodearraylist2;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -3335,12 +2688,11 @@ var8 = var_listnode5->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2554);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2540);
+show_backtrace(1);
 }
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode8 = var11;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -3357,14 +2709,13 @@ var12 = var_listnode7->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2557);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2543);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction25>*/;
 var_listnode8 = var15;
 var16 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var16->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var16, var_listnode8) /* init_atopclassdef on <var16:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var16);
 var_pclassdefnode6 = var16;
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction25>*/;
 var_listnode9 = var17;
@@ -3380,7 +2731,6 @@ if (var19){
 }
 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var20:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var20);
 var_pmodulenode1 = var20;
 var_node_list = var_pmodulenode1;
 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction25> */
@@ -3447,15 +2797,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -3472,8 +2819,8 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2588);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2574);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction26>*/;
 var_listnode4 = var8;
@@ -3492,12 +2839,11 @@ var9 = var_listnode6->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2591);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2577);
+show_backtrace(1);
 }
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode9 = var12;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -3514,14 +2860,13 @@ var13 = var_listnode8->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2594);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2580);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction26>*/;
 var_listnode9 = var16;
 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var17);
 var_pclassdefnode7 = var17;
 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction26>*/;
 var_listnode10 = var18;
@@ -3538,7 +2883,6 @@ if (var20){
 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var22 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var21:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var21);
 var_pmodulenode1 = var21;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction26> */
@@ -3612,15 +2956,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -3637,8 +2978,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2626);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2612);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -3655,8 +2996,8 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2628);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2614);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction27>*/;
 var_listnode4 = var12;
@@ -3675,12 +3016,11 @@ var13 = var_listnode6->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2631);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2617);
+show_backtrace(1);
 }
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode9 = var16;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -3697,14 +3037,13 @@ var17 = var_listnode8->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2634);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2620);
+show_backtrace(1);
 }
 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction27>*/;
 var_listnode9 = var20;
 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var21);
 var_pclassdefnode7 = var21;
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction27>*/;
 var_listnode10 = var22;
@@ -3720,7 +3059,6 @@ if (var24){
 }
 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var25:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var25);
 var_pmodulenode1 = var25;
 var_node_list = var_pmodulenode1;
 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction27> */
@@ -3787,15 +3125,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -3812,8 +3147,8 @@ var7 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2665);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2651);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction28>*/;
 var_listnode5 = var8;
@@ -3832,12 +3167,11 @@ var9 = var_listnode6->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2668);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2654);
+show_backtrace(1);
 }
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode9 = var12;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -3854,14 +3188,13 @@ var13 = var_listnode8->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2671);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2657);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction28>*/;
 var_listnode9 = var16;
 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var17);
 var_pclassdefnode7 = var17;
 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction28>*/;
 var_listnode10 = var18;
@@ -3878,7 +3211,6 @@ if (var20){
 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var22 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var21:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var21);
 var_pmodulenode1 = var21;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction28> */
@@ -3952,15 +3284,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode3 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -3977,8 +3306,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2703);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2689);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -3995,8 +3324,8 @@ var9 = var_listnode4->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2705);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2691);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction29>*/;
 var_listnode5 = var12;
@@ -4015,12 +3344,11 @@ var13 = var_listnode6->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2708);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2694);
+show_backtrace(1);
 }
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode9 = var16;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -4037,14 +3365,13 @@ var17 = var_listnode8->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2711);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2697);
+show_backtrace(1);
 }
 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction29>*/;
 var_listnode9 = var20;
 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var21);
 var_pclassdefnode7 = var21;
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction29>*/;
 var_listnode10 = var22;
@@ -4060,7 +3387,6 @@ if (var24){
 }
 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var25:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var25);
 var_pmodulenode1 = var25;
 var_node_list = var_pmodulenode1;
 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction29> */
@@ -4136,15 +3462,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode11 = var7;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -4161,8 +3484,8 @@ var8 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2743);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2729);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction30>*/;
 var_listnode4 = var9;
@@ -4181,8 +3504,8 @@ var10 = var_listnode5->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2746);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2732);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction30>*/;
 var_listnode6 = var13;
@@ -4201,12 +3524,11 @@ var14 = var_listnode7->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2749);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2735);
+show_backtrace(1);
 }
 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
-CHECK_NEW_array__Array(var17);
 var_listnode10 = var17;
 var_listnode9 = var_nodearraylist4;
 /* <var_listnode9:nullable Object> isa Array[Object] */
@@ -4223,14 +3545,13 @@ var18 = var_listnode9->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2752);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2738);
+show_backtrace(1);
 }
 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction30>*/;
 var_listnode10 = var21;
 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode10) /* init_atopclassdef on <var22:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var22);
 var_pclassdefnode8 = var22;
 var23 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction30>*/;
 var_listnode11 = var23;
@@ -4247,7 +3568,6 @@ if (var25){
 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var27 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var27, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var26:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var26);
 var_pmodulenode1 = var26;
 var_node_list = var_pmodulenode1;
 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction30> */
@@ -4330,15 +3650,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode6 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode11 = var8;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -4355,8 +3672,8 @@ var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2785);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2771);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -4373,8 +3690,8 @@ var10 = var_listnode3->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2787);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2773);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction31>*/;
 var_listnode4 = var13;
@@ -4393,8 +3710,8 @@ var14 = var_listnode5->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2790);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2776);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction31>*/;
 var_listnode6 = var17;
@@ -4413,12 +3730,11 @@ var18 = var_listnode7->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2793);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2779);
+show_backtrace(1);
 }
 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on <var21:Array[Object]>*/;
-CHECK_NEW_array__Array(var21);
 var_listnode10 = var21;
 var_listnode9 = var_nodearraylist5;
 /* <var_listnode9:nullable Object> isa Array[Object] */
@@ -4435,14 +3751,13 @@ var22 = var_listnode9->type->type_table[cltype23] == idtype24;
 }
 if (!var22) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2796);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2782);
+show_backtrace(1);
 }
 var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction31>*/;
 var_listnode10 = var25;
 var26 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var26->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var26, var_listnode10) /* init_atopclassdef on <var26:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var26);
 var_pclassdefnode8 = var26;
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction31>*/;
 var_listnode11 = var27;
@@ -4458,7 +3773,6 @@ if (var29){
 }
 var30 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var30, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var30:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var30);
 var_pmodulenode1 = var30;
 var_node_list = var_pmodulenode1;
 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
@@ -4502,15 +3816,12 @@ var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode3 = 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode6 = var4;
 var_pclassdefnode5 = var_nodearraylist1;
 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
@@ -4527,8 +3838,8 @@ var5 = var_pclassdefnode5->type->type_table[cltype] == idtype;
 }
 if (!var5) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2825);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2811);
+show_backtrace(1);
 }
 var6 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -4543,7 +3854,6 @@ if (var7){
 var8 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var9 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var8, var9, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var8:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var8);
 var_pmodulenode1 = var8;
 var_node_list = var_pmodulenode1;
 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
@@ -4594,15 +3904,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -4619,8 +3926,8 @@ var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2850);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2836);
+show_backtrace(1);
 }
 var_pclassdefnode5 = var_nodearraylist2;
 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
@@ -4637,8 +3944,8 @@ var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2852);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2838);
+show_backtrace(1);
 }
 var10 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -4652,7 +3959,6 @@ if (var11){
 }
 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var12:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var12);
 var_pmodulenode1 = var12;
 var_node_list = var_pmodulenode1;
 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
@@ -4705,15 +4011,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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_listnode4 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -4730,8 +4033,8 @@ var6 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2877);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2863);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction34>*/;
 var_listnode4 = var7;
@@ -4750,8 +4053,8 @@ var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2880);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2866);
+show_backtrace(1);
 }
 var11 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -4766,7 +4069,6 @@ if (var12){
 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var14 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var13:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var13);
 var_pmodulenode1 = var13;
 var_node_list = var_pmodulenode1;
 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
@@ -4826,15 +4128,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -4851,8 +4150,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2906);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2892);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -4869,8 +4168,8 @@ var8 = var_listnode3->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2908);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2894);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction35>*/;
 var_listnode4 = var11;
@@ -4889,8 +4188,8 @@ var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2911);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2897);
+show_backtrace(1);
 }
 var15 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -4904,7 +4203,6 @@ if (var16){
 }
 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var17:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var17);
 var_pmodulenode1 = var17;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
@@ -4957,15 +4255,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode5 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -4982,8 +4277,8 @@ var6 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2936);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2922);
+show_backtrace(1);
 }
 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction36>*/;
 var_listnode5 = var7;
@@ -5002,8 +4297,8 @@ var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2939);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2925);
+show_backtrace(1);
 }
 var11 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -5018,7 +4313,6 @@ if (var12){
 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var14 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var13:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var13);
 var_pmodulenode1 = var13;
 var_node_list = var_pmodulenode1;
 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
@@ -5078,15 +4372,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -5103,8 +4394,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2965);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2951);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -5121,8 +4412,8 @@ var8 = var_listnode4->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2967);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2953);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction37>*/;
 var_listnode5 = var11;
@@ -5141,8 +4432,8 @@ var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2970);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2956);
+show_backtrace(1);
 }
 var15 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -5156,7 +4447,6 @@ if (var16){
 }
 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var17:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var17);
 var_pmodulenode1 = var17;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
@@ -5218,15 +4508,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode6 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode8 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -5243,8 +4530,8 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2996);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2982);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction38>*/;
 var_listnode4 = var8;
@@ -5263,8 +4550,8 @@ var9 = var_listnode5->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2999);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2985);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction38>*/;
 var_listnode6 = var12;
@@ -5283,8 +4570,8 @@ var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3002);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2988);
+show_backtrace(1);
 }
 var16 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -5299,7 +4586,6 @@ if (var17){
 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var19 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var18:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var18);
 var_pmodulenode1 = var18;
 var_node_list = var_pmodulenode1;
 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
@@ -5368,15 +4654,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode8 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -5393,8 +4676,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3029);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3015);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -5411,8 +4694,8 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3031);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3017);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction39>*/;
 var_listnode4 = var12;
@@ -5431,8 +4714,8 @@ var13 = var_listnode5->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3034);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3020);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction39>*/;
 var_listnode6 = var16;
@@ -5451,8 +4734,8 @@ var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3037);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3023);
+show_backtrace(1);
 }
 var20 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -5466,7 +4749,6 @@ if (var21){
 }
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
@@ -5519,15 +4801,12 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode7 = var5;
 var_listnode5 = var_nodearraylist1;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -5544,8 +4823,8 @@ var6 = var_listnode5->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3062);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3048);
+show_backtrace(1);
 }
 var_pclassdefnode6 = var_nodearraylist2;
 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
@@ -5562,8 +4841,8 @@ var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3064);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3050);
+show_backtrace(1);
 }
 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction40>*/;
 var_listnode7 = var10;
@@ -5580,7 +4859,6 @@ if (var12){
 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var14 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on <var13:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var13);
 var_pmodulenode1 = var13;
 var_node_list = var_pmodulenode1;
 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
@@ -5640,15 +4918,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -5665,8 +4940,8 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3091);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3077);
+show_backtrace(1);
 }
 var_listnode5 = var_nodearraylist2;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -5683,8 +4958,8 @@ var8 = var_listnode5->type->type_table[cltype9] == idtype10;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3093);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3079);
+show_backtrace(1);
 }
 var_pclassdefnode6 = var_nodearraylist3;
 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
@@ -5701,8 +4976,8 @@ var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13;
 }
 if (!var11) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3095);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3081);
+show_backtrace(1);
 }
 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction41>*/;
 var_listnode7 = var14;
@@ -5718,7 +4993,6 @@ if (var16){
 }
 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on <var17:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var17);
 var_pmodulenode1 = var17;
 var_node_list = var_pmodulenode1;
 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction41> */
@@ -5780,15 +5054,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode8 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -5805,8 +5076,8 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3122);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3108);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction42>*/;
 var_listnode4 = var8;
@@ -5825,8 +5096,8 @@ var9 = var_listnode6->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3125);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3111);
+show_backtrace(1);
 }
 var_pclassdefnode7 = var_nodearraylist3;
 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
@@ -5843,8 +5114,8 @@ var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3127);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3113);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction42>*/;
 var_listnode8 = var15;
@@ -5861,7 +5132,6 @@ if (var17){
 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var19 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on <var18:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var18);
 var_pmodulenode1 = var18;
 var_node_list = var_pmodulenode1;
 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction42> */
@@ -5930,15 +5200,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode8 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -5955,8 +5222,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3155);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3141);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -5973,8 +5240,8 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3157);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3143);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction43>*/;
 var_listnode4 = var12;
@@ -5993,8 +5260,8 @@ var13 = var_listnode6->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3160);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3146);
+show_backtrace(1);
 }
 var_pclassdefnode7 = var_nodearraylist4;
 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
@@ -6011,8 +5278,8 @@ var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
 }
 if (!var16) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3162);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3148);
+show_backtrace(1);
 }
 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction43>*/;
 var_listnode8 = var19;
@@ -6028,7 +5295,6 @@ if (var21){
 }
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction43> */
@@ -6090,15 +5356,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode8 = var6;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -6115,8 +5378,8 @@ var7 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3189);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3175);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction44>*/;
 var_listnode5 = var8;
@@ -6135,8 +5398,8 @@ var9 = var_listnode6->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3192);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3178);
+show_backtrace(1);
 }
 var_pclassdefnode7 = var_nodearraylist3;
 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
@@ -6153,8 +5416,8 @@ var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
 }
 if (!var12) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3194);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3180);
+show_backtrace(1);
 }
 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction44>*/;
 var_listnode8 = var15;
@@ -6171,7 +5434,6 @@ if (var17){
 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var19 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on <var18:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var18);
 var_pmodulenode1 = var18;
 var_node_list = var_pmodulenode1;
 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction44> */
@@ -6240,15 +5502,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode3 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode8 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -6265,8 +5524,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3222);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3208);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -6283,8 +5542,8 @@ var9 = var_listnode4->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3224);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3210);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction45>*/;
 var_listnode5 = var12;
@@ -6303,8 +5562,8 @@ var13 = var_listnode6->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3227);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3213);
+show_backtrace(1);
 }
 var_pclassdefnode7 = var_nodearraylist4;
 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
@@ -6321,8 +5580,8 @@ var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
 }
 if (!var16) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3229);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3215);
+show_backtrace(1);
 }
 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction45>*/;
 var_listnode8 = var19;
@@ -6338,7 +5597,6 @@ if (var21){
 }
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction45> */
@@ -6409,15 +5667,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode9 = var7;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -6434,8 +5689,8 @@ var8 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3257);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3243);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction46>*/;
 var_listnode4 = var9;
@@ -6454,8 +5709,8 @@ var10 = var_listnode5->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3260);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3246);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction46>*/;
 var_listnode6 = var13;
@@ -6474,8 +5729,8 @@ var14 = var_listnode7->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3263);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3249);
+show_backtrace(1);
 }
 var_pclassdefnode8 = var_nodearraylist4;
 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
@@ -6492,8 +5747,8 @@ var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3265);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3251);
+show_backtrace(1);
 }
 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction46>*/;
 var_listnode9 = var20;
@@ -6510,7 +5765,6 @@ if (var22){
 var23 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var24 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var23, var24, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on <var23:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var23);
 var_pmodulenode1 = var23;
 var_node_list = var_pmodulenode1;
 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction46> */
@@ -6588,15 +5842,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode6 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode9 = var8;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -6613,8 +5864,8 @@ var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3294);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3280);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -6631,8 +5882,8 @@ var10 = var_listnode3->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3296);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3282);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction47>*/;
 var_listnode4 = var13;
@@ -6651,8 +5902,8 @@ var14 = var_listnode5->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3299);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3285);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction47>*/;
 var_listnode6 = var17;
@@ -6671,8 +5922,8 @@ var18 = var_listnode7->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3302);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3288);
+show_backtrace(1);
 }
 var_pclassdefnode8 = var_nodearraylist5;
 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
@@ -6689,8 +5940,8 @@ var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23;
 }
 if (!var21) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3304);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3290);
+show_backtrace(1);
 }
 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction47>*/;
 var_listnode9 = var24;
@@ -6706,7 +5957,6 @@ if (var26){
 }
 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on <var27:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var27);
 var_pmodulenode1 = var27;
 var_node_list = var_pmodulenode1;
 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction47> */
@@ -6765,19 +6015,15 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 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;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode9 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode7 = var6;
 var_listnode6 = var_nodearraylist1;
 /* <var_listnode6:nullable Object> isa Array[Object] */
@@ -6794,14 +6040,13 @@ var7 = var_listnode6->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3331);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3317);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction48>*/;
 var_listnode7 = var8;
 var9 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var9->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var9, var_listnode7) /* init_atopclassdef on <var9:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var9);
 var_pclassdefnode5 = var9;
 var_pclassdefnode8 = var_nodearraylist2;
 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
@@ -6818,8 +6063,8 @@ var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3337);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3323);
+show_backtrace(1);
 }
 var13 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -6844,7 +6089,6 @@ if (var16){
 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var18 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var17:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var17);
 var_pmodulenode1 = var17;
 var_node_list = var_pmodulenode1;
 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction48> */
@@ -6910,15 +6154,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode9 = var6;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -6935,12 +6176,11 @@ var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3366);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3352);
+show_backtrace(1);
 }
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode7 = var8;
 var_listnode6 = var_nodearraylist2;
 /* <var_listnode6:nullable Object> isa Array[Object] */
@@ -6957,14 +6197,13 @@ var9 = var_listnode6->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3369);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3355);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction49>*/;
 var_listnode7 = var12;
 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode7) /* init_atopclassdef on <var13:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var13);
 var_pclassdefnode5 = var13;
 var_pclassdefnode8 = var_nodearraylist3;
 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
@@ -6981,8 +6220,8 @@ var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3375);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3361);
+show_backtrace(1);
 }
 var17 = NULL;
 if (var_pclassdefnode5 == NULL) {
@@ -7006,7 +6245,6 @@ if (var20){
 }
 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var21:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var21);
 var_pmodulenode1 = var21;
 var_node_list = var_pmodulenode1;
 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction49> */
@@ -7074,15 +6312,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode4 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -7099,14 +6334,13 @@ var7 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3404);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3390);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction50>*/;
 var_listnode4 = var8;
 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
-CHECK_NEW_array__Array(var9);
 var_listnode8 = var9;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7123,14 +6357,13 @@ var10 = var_listnode7->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3408);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3394);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction50>*/;
 var_listnode8 = var13;
 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var14);
 var_pclassdefnode6 = var14;
 var_pclassdefnode9 = var_nodearraylist3;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -7147,8 +6380,8 @@ var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
 }
 if (!var15) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3414);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3400);
+show_backtrace(1);
 }
 var18 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -7173,7 +6406,6 @@ if (var21){
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var23 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction50> */
@@ -7248,15 +6480,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -7273,8 +6502,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3444);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3430);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -7291,14 +6520,13 @@ var9 = var_listnode3->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3446);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3432);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction51>*/;
 var_listnode4 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7315,14 +6543,13 @@ var14 = var_listnode7->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3450);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3436);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction51>*/;
 var_listnode8 = var17;
 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var18);
 var_pclassdefnode6 = var18;
 var_pclassdefnode9 = var_nodearraylist4;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -7339,8 +6566,8 @@ var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3456);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3442);
+show_backtrace(1);
 }
 var22 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -7364,7 +6591,6 @@ if (var25){
 }
 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var26:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var26);
 var_pmodulenode1 = var26;
 var_node_list = var_pmodulenode1;
 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction51> */
@@ -7432,15 +6658,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode5 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -7457,14 +6680,13 @@ var7 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3485);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3471);
+show_backtrace(1);
 }
 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction52>*/;
 var_listnode5 = var8;
 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
-CHECK_NEW_array__Array(var9);
 var_listnode8 = var9;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7481,14 +6703,13 @@ var10 = var_listnode7->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3489);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3475);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction52>*/;
 var_listnode8 = var13;
 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var14);
 var_pclassdefnode6 = var14;
 var_pclassdefnode9 = var_nodearraylist3;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -7505,8 +6726,8 @@ var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
 }
 if (!var15) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3495);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3481);
+show_backtrace(1);
 }
 var18 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -7531,7 +6752,6 @@ if (var21){
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var23 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction52> */
@@ -7606,15 +6826,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode3 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -7631,8 +6848,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3525);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3511);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -7649,14 +6866,13 @@ var9 = var_listnode4->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3527);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3513);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction53>*/;
 var_listnode5 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7673,14 +6889,13 @@ var14 = var_listnode7->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3531);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3517);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction53>*/;
 var_listnode8 = var17;
 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var18);
 var_pclassdefnode6 = var18;
 var_pclassdefnode9 = var_nodearraylist4;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -7697,8 +6912,8 @@ var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3537);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3523);
+show_backtrace(1);
 }
 var22 = NULL;
 if (var_pclassdefnode6 == NULL) {
@@ -7722,7 +6937,6 @@ if (var25){
 }
 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var26:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var26);
 var_pmodulenode1 = var26;
 var_node_list = var_pmodulenode1;
 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction53> */
@@ -7799,15 +7013,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode6 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode11 = var7;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -7824,8 +7035,8 @@ var8 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3567);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3553);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction54>*/;
 var_listnode4 = var9;
@@ -7844,14 +7055,13 @@ var10 = var_listnode5->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3570);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3556);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction54>*/;
 var_listnode6 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode9 = var14;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -7868,14 +7078,13 @@ var15 = var_listnode8->type->type_table[cltype16] == idtype17;
 }
 if (!var15) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3574);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3560);
+show_backtrace(1);
 }
 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction54>*/;
 var_listnode9 = var18;
 var19 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var19->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var19, var_listnode9) /* init_atopclassdef on <var19:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var19);
 var_pclassdefnode7 = var19;
 var_pclassdefnode10 = var_nodearraylist4;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -7892,8 +7101,8 @@ var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22;
 }
 if (!var20) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3580);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3566);
+show_backtrace(1);
 }
 var23 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -7918,7 +7127,6 @@ if (var26){
 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var28 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var27:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var27);
 var_pmodulenode1 = var27;
 var_node_list = var_pmodulenode1;
 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction54> */
@@ -8002,15 +7210,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode6 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode11 = var8;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -8027,8 +7232,8 @@ var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3611);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3597);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -8045,8 +7250,8 @@ var10 = var_listnode3->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3613);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3599);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction55>*/;
 var_listnode4 = var13;
@@ -8065,14 +7270,13 @@ var14 = var_listnode5->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3616);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3602);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction55>*/;
 var_listnode6 = var17;
 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
-CHECK_NEW_array__Array(var18);
 var_listnode9 = var18;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -8089,14 +7293,13 @@ var19 = var_listnode8->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3620);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3606);
+show_backtrace(1);
 }
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction55>*/;
 var_listnode9 = var22;
 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode9) /* init_atopclassdef on <var23:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var23);
 var_pclassdefnode7 = var23;
 var_pclassdefnode10 = var_nodearraylist5;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -8113,8 +7316,8 @@ var24 = var_pclassdefnode10->type->type_table[cltype25] == idtype26;
 }
 if (!var24) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3626);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3612);
+show_backtrace(1);
 }
 var27 = NULL;
 if (var_pclassdefnode7 == NULL) {
@@ -8138,7 +7341,6 @@ if (var30){
 }
 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var31:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var31);
 var_pmodulenode1 = var31;
 var_node_list = var_pmodulenode1;
 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction55> */
@@ -8206,15 +7408,12 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var3;
 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
 var_listnode3 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode10 = var6;
 var_listnode5 = var_nodearraylist1;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -8231,12 +7430,11 @@ var7 = var_listnode5->type->type_table[cltype] == idtype;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3655);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3641);
+show_backtrace(1);
 }
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode8 = var8;
 var_listnode7 = var_nodearraylist2;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8253,14 +7451,13 @@ var9 = var_listnode7->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3658);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3644);
+show_backtrace(1);
 }
 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction56>*/;
 var_listnode8 = var12;
 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var13);
 var_pclassdefnode6 = var13;
 var_pclassdefnode9 = var_nodearraylist3;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -8277,8 +7474,8 @@ var14 = var_pclassdefnode9->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3664);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3650);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction56>*/;
 var_listnode10 = var17;
@@ -8305,7 +7502,6 @@ if (var21){
 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var23 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on <var22:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var22);
 var_pmodulenode1 = var22;
 var_node_list = var_pmodulenode1;
 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction56> */
@@ -8380,15 +7576,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode3 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode10 = var7;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -8405,8 +7598,8 @@ var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3695);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3681);
+show_backtrace(1);
 }
 var_listnode5 = var_nodearraylist2;
 /* <var_listnode5:nullable Object> isa Array[Object] */
@@ -8423,12 +7616,11 @@ var9 = var_listnode5->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3697);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3683);
+show_backtrace(1);
 }
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var_listnode7 = var_nodearraylist3;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8445,14 +7637,13 @@ var13 = var_listnode7->type->type_table[cltype14] == idtype15;
 }
 if (!var13) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3700);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3686);
+show_backtrace(1);
 }
 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction57>*/;
 var_listnode8 = var16;
 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var17);
 var_pclassdefnode6 = var17;
 var_pclassdefnode9 = var_nodearraylist4;
 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
@@ -8469,8 +7660,8 @@ var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3706);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3692);
+show_backtrace(1);
 }
 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction57>*/;
 var_listnode10 = var21;
@@ -8496,7 +7687,6 @@ if (var25){
 }
 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on <var26:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var26);
 var_pmodulenode1 = var26;
 var_node_list = var_pmodulenode1;
 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction57> */
@@ -8573,15 +7763,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode4 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode11 = var7;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -8598,8 +7785,8 @@ var8 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3737);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3723);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction58>*/;
 var_listnode4 = var9;
@@ -8618,12 +7805,11 @@ var10 = var_listnode6->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3740);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3726);
+show_backtrace(1);
 }
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode9 = var13;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -8640,14 +7826,13 @@ var14 = var_listnode8->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3743);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3729);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction58>*/;
 var_listnode9 = var17;
 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var18);
 var_pclassdefnode7 = var18;
 var_pclassdefnode10 = var_nodearraylist4;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -8664,8 +7849,8 @@ var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3749);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3735);
+show_backtrace(1);
 }
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction58>*/;
 var_listnode11 = var22;
@@ -8692,7 +7877,6 @@ if (var26){
 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var28 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on <var27:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var27);
 var_pmodulenode1 = var27;
 var_node_list = var_pmodulenode1;
 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction58> */
@@ -8776,15 +7960,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode5 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode11 = var8;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -8801,8 +7982,8 @@ var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3781);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3767);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -8819,8 +8000,8 @@ var10 = var_listnode3->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3783);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3769);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction59>*/;
 var_listnode4 = var13;
@@ -8839,12 +8020,11 @@ var14 = var_listnode6->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3786);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3772);
+show_backtrace(1);
 }
 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
-CHECK_NEW_array__Array(var17);
 var_listnode9 = var17;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -8861,14 +8041,13 @@ var18 = var_listnode8->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3789);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3775);
+show_backtrace(1);
 }
 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction59>*/;
 var_listnode9 = var21;
 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var22);
 var_pclassdefnode7 = var22;
 var_pclassdefnode10 = var_nodearraylist5;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -8885,8 +8064,8 @@ var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
 }
 if (!var23) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3795);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3781);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction59>*/;
 var_listnode11 = var26;
@@ -8912,7 +8091,6 @@ if (var30){
 }
 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on <var31:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var31);
 var_pmodulenode1 = var31;
 var_node_list = var_pmodulenode1;
 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction59> */
@@ -8989,15 +8167,12 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var4;
 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
-CHECK_NEW_array__Array(var5);
 var_listnode3 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode5 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode11 = var7;
 var_listnode4 = var_nodearraylist1;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -9014,8 +8189,8 @@ var8 = var_listnode4->type->type_table[cltype] == idtype;
 }
 if (!var8) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3826);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3812);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction60>*/;
 var_listnode5 = var9;
@@ -9034,12 +8209,11 @@ var10 = var_listnode6->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3829);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3815);
+show_backtrace(1);
 }
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode9 = var13;
 var_listnode8 = var_nodearraylist3;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -9056,14 +8230,13 @@ var14 = var_listnode8->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3832);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3818);
+show_backtrace(1);
 }
 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction60>*/;
 var_listnode9 = var17;
 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var18);
 var_pclassdefnode7 = var18;
 var_pclassdefnode10 = var_nodearraylist4;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -9080,8 +8253,8 @@ var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3838);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3824);
+show_backtrace(1);
 }
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction60>*/;
 var_listnode11 = var22;
@@ -9108,7 +8281,6 @@ if (var26){
 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var28 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on <var27:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var27);
 var_pmodulenode1 = var27;
 var_node_list = var_pmodulenode1;
 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction60> */
@@ -9192,15 +8364,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode3 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode5 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode11 = var8;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -9217,8 +8386,8 @@ var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3870);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3856);
+show_backtrace(1);
 }
 var_listnode4 = var_nodearraylist2;
 /* <var_listnode4:nullable Object> isa Array[Object] */
@@ -9235,8 +8404,8 @@ var10 = var_listnode4->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3872);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3858);
+show_backtrace(1);
 }
 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction61>*/;
 var_listnode5 = var13;
@@ -9255,12 +8424,11 @@ var14 = var_listnode6->type->type_table[cltype15] == idtype16;
 }
 if (!var14) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3875);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3861);
+show_backtrace(1);
 }
 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
-CHECK_NEW_array__Array(var17);
 var_listnode9 = var17;
 var_listnode8 = var_nodearraylist4;
 /* <var_listnode8:nullable Object> isa Array[Object] */
@@ -9277,14 +8445,13 @@ var18 = var_listnode8->type->type_table[cltype19] == idtype20;
 }
 if (!var18) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3878);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3864);
+show_backtrace(1);
 }
 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction61>*/;
 var_listnode9 = var21;
 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var22);
 var_pclassdefnode7 = var22;
 var_pclassdefnode10 = var_nodearraylist5;
 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
@@ -9301,8 +8468,8 @@ var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
 }
 if (!var23) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3884);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3870);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction61>*/;
 var_listnode11 = var26;
@@ -9328,7 +8495,6 @@ if (var30){
 }
 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on <var31:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var31);
 var_pmodulenode1 = var31;
 var_node_list = var_pmodulenode1;
 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction61> */
@@ -9414,15 +8580,12 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var5;
 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
-CHECK_NEW_array__Array(var6);
 var_listnode4 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode6 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode12 = var8;
 var_listnode3 = var_nodearraylist1;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -9439,8 +8602,8 @@ var9 = var_listnode3->type->type_table[cltype] == idtype;
 }
 if (!var9) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3916);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3902);
+show_backtrace(1);
 }
 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction62>*/;
 var_listnode4 = var10;
@@ -9459,8 +8622,8 @@ var11 = var_listnode5->type->type_table[cltype12] == idtype13;
 }
 if (!var11) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3919);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3905);
+show_backtrace(1);
 }
 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction62>*/;
 var_listnode6 = var14;
@@ -9479,12 +8642,11 @@ var15 = var_listnode7->type->type_table[cltype16] == idtype17;
 }
 if (!var15) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3922);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3908);
+show_backtrace(1);
 }
 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
-CHECK_NEW_array__Array(var18);
 var_listnode10 = var18;
 var_listnode9 = var_nodearraylist4;
 /* <var_listnode9:nullable Object> isa Array[Object] */
@@ -9501,14 +8663,13 @@ var19 = var_listnode9->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3925);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3911);
+show_backtrace(1);
 }
 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction62>*/;
 var_listnode10 = var22;
 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode10) /* init_atopclassdef on <var23:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var23);
 var_pclassdefnode8 = var23;
 var_pclassdefnode11 = var_nodearraylist5;
 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
@@ -9525,8 +8686,8 @@ var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26;
 }
 if (!var24) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3931);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3917);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction62>*/;
 var_listnode12 = var27;
@@ -9553,7 +8714,6 @@ if (var31){
 var32 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 var33 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var32, var33, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on <var32:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var32);
 var_pmodulenode1 = var32;
 var_node_list = var_pmodulenode1;
 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction62> */
@@ -9646,15 +8806,12 @@ var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var6;
 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
-CHECK_NEW_array__Array(var7);
 var_listnode4 = var7;
 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
-CHECK_NEW_array__Array(var8);
 var_listnode6 = var8;
 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
-CHECK_NEW_array__Array(var9);
 var_listnode12 = var9;
 var_pmoduledeclnode2 = var_nodearraylist1;
 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
@@ -9671,8 +8828,8 @@ var10 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3964);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3950);
+show_backtrace(1);
 }
 var_listnode3 = var_nodearraylist2;
 /* <var_listnode3:nullable Object> isa Array[Object] */
@@ -9689,8 +8846,8 @@ var11 = var_listnode3->type->type_table[cltype12] == idtype13;
 }
 if (!var11) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3966);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3952);
+show_backtrace(1);
 }
 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction63>*/;
 var_listnode4 = var14;
@@ -9709,8 +8866,8 @@ var15 = var_listnode5->type->type_table[cltype16] == idtype17;
 }
 if (!var15) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3969);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3955);
+show_backtrace(1);
 }
 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction63>*/;
 var_listnode6 = var18;
@@ -9729,12 +8886,11 @@ var19 = var_listnode7->type->type_table[cltype20] == idtype21;
 }
 if (!var19) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3972);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3958);
+show_backtrace(1);
 }
 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on <var22:Array[Object]>*/;
-CHECK_NEW_array__Array(var22);
 var_listnode10 = var22;
 var_listnode9 = var_nodearraylist5;
 /* <var_listnode9:nullable Object> isa Array[Object] */
@@ -9751,14 +8907,13 @@ var23 = var_listnode9->type->type_table[cltype24] == idtype25;
 }
 if (!var23) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3975);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3961);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction63>*/;
 var_listnode10 = var26;
 var27 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
 ((void (*)(val*, val*))(var27->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var27, var_listnode10) /* init_atopclassdef on <var27:ATopClassdef>*/;
-CHECK_NEW_parser_nodes__ATopClassdef(var27);
 var_pclassdefnode8 = var27;
 var_pclassdefnode11 = var_nodearraylist6;
 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
@@ -9775,8 +8930,8 @@ var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30;
 }
 if (!var28) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3981);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3967);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction63>*/;
 var_listnode12 = var31;
@@ -9802,7 +8957,6 @@ if (var35){
 }
 var36 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var36, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on <var36:AModule>*/;
-CHECK_NEW_parser_nodes__AModule(var36);
 var_pmodulenode1 = var36;
 var_node_list = var_pmodulenode1;
 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction63> */
@@ -9875,8 +9029,8 @@ var6 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 if (!var6) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4010);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3996);
+show_backtrace(1);
 }
 var_tkwmodulenode3 = var_nodearraylist2;
 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
@@ -9893,8 +9047,8 @@ var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9;
 }
 if (!var7) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4012);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3998);
+show_backtrace(1);
 }
 var_pmodulenamenode4 = var_nodearraylist4;
 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
@@ -9911,13 +9065,12 @@ var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4014);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4000);
+show_backtrace(1);
 }
 var13 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
 var14 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var13, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var14) /* init_amoduledecl on <var13:AModuledecl>*/;
-CHECK_NEW_parser_nodes__AModuledecl(var13);
 var_pmoduledeclnode1 = var13;
 var_node_list = var_pmoduledeclnode1;
 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction64> */
@@ -9930,3 +9083,856 @@ void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) {
 parser__ReduceAction64__action(self, p0);
 RET_LABEL:;
 }
+/* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */
+void parser__ReduceAction65__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pdocnode2 /* var pdocnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var17 /* : AModuledecl */;
+val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
+long var18 /* : Int */;
+long var19 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pdocnode2 = var_nodearraylist1;
+/* <var_pdocnode2:nullable Object> isa nullable ADoc */
+cltype = type_nullable_parser_nodes__ADoc.color;
+idtype = type_nullable_parser_nodes__ADoc.id;
+if(var_pdocnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pdocnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pdocnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4023);
+show_backtrace(1);
+}
+var_tkwmodulenode3 = var_nodearraylist2;
+/* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
+cltype9 = type_nullable_parser_nodes__TKwmodule.color;
+idtype10 = type_nullable_parser_nodes__TKwmodule.id;
+if(var_tkwmodulenode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tkwmodulenode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4025);
+show_backtrace(1);
+}
+var_pmodulenamenode4 = var_nodearraylist4;
+/* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
+cltype12 = type_nullable_parser_nodes__AModuleName.color;
+idtype13 = type_nullable_parser_nodes__AModuleName.id;
+if(var_pmodulenamenode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pmodulenamenode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4027);
+show_backtrace(1);
+}
+var_pannotationsnode5 = var_nodearraylist5;
+/* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
+cltype15 = type_nullable_parser_nodes__AAnnotations.color;
+idtype16 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode5 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_pannotationsnode5->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
+}
+}
+if (!var14) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4029);
+show_backtrace(1);
+}
+var17 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
+((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var17, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_amoduledecl on <var17:AModuledecl>*/;
+var_pmoduledeclnode1 = var17;
+var_node_list = var_pmoduledeclnode1;
+var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction65> */
+var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction65#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) {
+parser__ReduceAction65__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */
+void parser__ReduceAction66__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AStdImport */;
+val* var15 /* : null */;
+val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */;
+long var16 /* : Int */;
+long var17 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pvisibilitynode2 = var_nodearraylist2;
+/* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
+cltype = type_nullable_parser_nodes__AVisibility.color;
+idtype = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pvisibilitynode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4052);
+show_backtrace(1);
+}
+var_tkwimportnode3 = var_nodearraylist3;
+/* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
+cltype9 = type_nullable_parser_nodes__TKwimport.color;
+idtype10 = type_nullable_parser_nodes__TKwimport.id;
+if(var_tkwimportnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tkwimportnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4054);
+show_backtrace(1);
+}
+var_pmodulenamenode4 = var_nodearraylist5;
+/* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
+cltype12 = type_nullable_parser_nodes__AModuleName.color;
+idtype13 = type_nullable_parser_nodes__AModuleName.id;
+if(var_pmodulenamenode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_pmodulenamenode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4056);
+show_backtrace(1);
+}
+var14 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport);
+var15 = NULL;
+((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var15) /* init_astdimport on <var14:AStdImport>*/;
+var_pimportnode1 = var14;
+var_node_list = var_pimportnode1;
+var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction66> */
+var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction66#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) {
+parser__ReduceAction66__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */
+void parser__ReduceAction67__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : AStdImport */;
+val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */;
+long var19 /* : Int */;
+long var20 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var_pvisibilitynode2 = var_nodearraylist2;
+/* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
+cltype = type_nullable_parser_nodes__AVisibility.color;
+idtype = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_pvisibilitynode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4080);
+show_backtrace(1);
+}
+var_tkwimportnode3 = var_nodearraylist3;
+/* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
+cltype10 = type_nullable_parser_nodes__TKwimport.color;
+idtype11 = type_nullable_parser_nodes__TKwimport.id;
+if(var_tkwimportnode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tkwimportnode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwimportnode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4082);
+show_backtrace(1);
+}
+var_pmodulenamenode4 = var_nodearraylist5;
+/* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
+cltype13 = type_nullable_parser_nodes__AModuleName.color;
+idtype14 = type_nullable_parser_nodes__AModuleName.id;
+if(var_pmodulenamenode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pmodulenamenode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pmodulenamenode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4084);
+show_backtrace(1);
+}
+var_pannotationsnode5 = var_nodearraylist6;
+/* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
+cltype16 = type_nullable_parser_nodes__AAnnotations.color;
+idtype17 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pannotationsnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pannotationsnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4086);
+show_backtrace(1);
+}
+var18 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport);
+((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var18, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_astdimport on <var18:AStdImport>*/;
+var_pimportnode1 = var18;
+var_node_list = var_pimportnode1;
+var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction67> */
+var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction67#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) {
+parser__ReduceAction67__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */
+void parser__ReduceAction68__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : ANoImport */;
+val* var_pimportnode1 /* var pimportnode1: nullable ANoImport */;
+long var15 /* : Int */;
+long var16 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var6;
+var_pvisibilitynode2 = var_nodearraylist2;
+/* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
+cltype = type_nullable_parser_nodes__AVisibility.color;
+idtype = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pvisibilitynode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4109);
+show_backtrace(1);
+}
+var_tkwimportnode3 = var_nodearraylist3;
+/* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
+cltype9 = type_nullable_parser_nodes__TKwimport.color;
+idtype10 = type_nullable_parser_nodes__TKwimport.id;
+if(var_tkwimportnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tkwimportnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (!var8) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4111);
+show_backtrace(1);
+}
+var_tkwendnode4 = var_nodearraylist5;
+/* <var_tkwendnode4:nullable Object> isa nullable TKwend */
+cltype12 = type_nullable_parser_nodes__TKwend.color;
+idtype13 = type_nullable_parser_nodes__TKwend.id;
+if(var_tkwendnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tkwendnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tkwendnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4113);
+show_backtrace(1);
+}
+var14 = NEW_parser_nodes__ANoImport(&type_parser_nodes__ANoImport);
+((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ANoImport__init_anoimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_tkwendnode4) /* init_anoimport on <var14:ANoImport>*/;
+var_pimportnode1 = var14;
+var_node_list = var_pimportnode1;
+var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction68> */
+var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction68#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction68__action(val* self, val* p0) {
+parser__ReduceAction68__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction69#action for (self: ReduceAction69, Parser) */
+void parser__ReduceAction69__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_listnode3 /* var listnode3: Array[Object] */;
+val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var4 /* : null */;
+short int var5 /* : Bool */;
+val* var6 /* : AMainClassdef */;
+val* var_pclassdefnode1 /* var pclassdefnode1: nullable AMainClassdef */;
+long var7 /* : Int */;
+long var8 /* : 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]>*/;
+var_listnode3 = var2;
+var_ppropdefnode2 = var_nodearraylist1;
+/* <var_ppropdefnode2:nullable Object> isa nullable APropdef */
+cltype = type_nullable_parser_nodes__APropdef.color;
+idtype = type_nullable_parser_nodes__APropdef.id;
+if(var_ppropdefnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_ppropdefnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_ppropdefnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4131);
+show_backtrace(1);
+}
+var4 = NULL;
+if (var_ppropdefnode2 == NULL) {
+var5 = 0; /* is null */
+} else {
+var5 = 1; /* arg is null and recv is not */
+}
+if (var5){
+((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
+} else {
+}
+var6 = NEW_parser_nodes__AMainClassdef(&type_parser_nodes__AMainClassdef);
+((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AMainClassdef__init_amainclassdef]))(var6, var_listnode3) /* init_amainclassdef on <var6:AMainClassdef>*/;
+var_pclassdefnode1 = var6;
+var_node_list = var_pclassdefnode1;
+var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction69> */
+var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction69#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction69__action(val* self, val* p0) {
+parser__ReduceAction69__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction70#action for (self: ReduceAction70, Parser) */
+void parser__ReduceAction70__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 /* : null */;
+long var3 /* : Int */;
+long var4 /* : 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 = NULL;
+var_node_list = var2;
+var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction70> */
+var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction70#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction70__action(val* self, val* p0) {
+parser__ReduceAction70__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction71#action for (self: ReduceAction71, Parser) */
+void parser__ReduceAction71__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var4 /* : AMainMethPropdef */;
+val* var5 /* : null */;
+val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMainMethPropdef */;
+long var6 /* : Int */;
+long var7 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var2;
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_pexprnode3->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_pexprnode3->type->type_table[cltype] == idtype;
+}
+}
+if (!var3) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4160);
+show_backtrace(1);
+}
+var4 = NEW_parser_nodes__AMainMethPropdef(&type_parser_nodes__AMainMethPropdef);
+var5 = NULL;
+((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AMainMethPropdef__init_amainmethpropdef]))(var4, var5, var_pexprnode3) /* init_amainmethpropdef on <var4:AMainMethPropdef>*/;
+var_ppropdefnode1 = var4;
+var_node_list = var_ppropdefnode1;
+var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction71> */
+var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction71#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction71__action(val* self, val* p0) {
+parser__ReduceAction71__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction73#action for (self: ReduceAction73, Parser) */
+void parser__ReduceAction73__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var8 /* : Array[Object] */;
+val* var_listnode7 /* var listnode7: Array[Object] */;
+val* var9 /* : Array[Object] */;
+val* var_listnode10 /* var listnode10: Array[Object] */;
+val* var10 /* : Array[Object] */;
+val* var_listnode11 /* var listnode11: Array[Object] */;
+val* var_pdocnode2 /* var pdocnode2: nullable Object */;
+short int var11 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var_tkwendnode12 /* var tkwendnode12: nullable Object */;
+short int var21 /* : Bool */;
+int cltype22;
+int idtype23;
+val* var24 /* : AStdClassdef */;
+val* var25 /* : null */;
+val* var26 /* : null */;
+val* var27 /* : null */;
+val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
+long var28 /* : Int */;
+long var29 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var7;
+var8 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
+var_listnode7 = var8;
+var9 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
+var_listnode10 = var9;
+var10 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
+var_listnode11 = var10;
+var_pdocnode2 = var_nodearraylist1;
+/* <var_pdocnode2:nullable Object> isa nullable ADoc */
+cltype = type_nullable_parser_nodes__ADoc.color;
+idtype = type_nullable_parser_nodes__ADoc.id;
+if(var_pdocnode2 == NULL) {
+var11 = 1;
+} else {
+if(cltype >= var_pdocnode2->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pdocnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var11) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4185);
+show_backtrace(1);
+}
+var_pvisibilitynode4 = var_nodearraylist2;
+/* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
+cltype13 = type_nullable_parser_nodes__AVisibility.color;
+idtype14 = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_pvisibilitynode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4187);
+show_backtrace(1);
+}
+var_pclasskindnode5 = var_nodearraylist3;
+/* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
+cltype16 = type_nullable_parser_nodes__AClasskind.color;
+idtype17 = type_nullable_parser_nodes__AClasskind.id;
+if(var_pclasskindnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pclasskindnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pclasskindnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (!var15) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4189);
+show_backtrace(1);
+}
+var_tclassidnode6 = var_nodearraylist5;
+/* <var_tclassidnode6:nullable Object> isa nullable TClassid */
+cltype19 = type_nullable_parser_nodes__TClassid.color;
+idtype20 = type_nullable_parser_nodes__TClassid.id;
+if(var_tclassidnode6 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_tclassidnode6->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20;
+}
+}
+if (!var18) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4191);
+show_backtrace(1);
+}
+var_tkwendnode12 = var_nodearraylist7;
+/* <var_tkwendnode12:nullable Object> isa nullable TKwend */
+cltype22 = type_nullable_parser_nodes__TKwend.color;
+idtype23 = type_nullable_parser_nodes__TKwend.id;
+if(var_tkwendnode12 == NULL) {
+var21 = 1;
+} else {
+if(cltype22 >= var_tkwendnode12->type->table_size) {
+var21 = 0;
+} else {
+var21 = var_tkwendnode12->type->type_table[cltype22] == idtype23;
+}
+}
+if (!var21) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4193);
+show_backtrace(1);
+}
+var24 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
+var25 = NULL;
+var26 = NULL;
+var27 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var24, var_pdocnode2, var25, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var26, var27, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on <var24:AStdClassdef>*/;
+var_pclassdefnode1 = var24;
+var_node_list = var_pclassdefnode1;
+var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction73> */
+var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction73#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction73__action(val* self, val* p0) {
+parser__ReduceAction73__action(self, p0);
+RET_LABEL:;
+}