Merge: Compilation to JavaScript using the Emscripten SDK
[nit.git] / c_src / parser.sep.6.c
index ee7d5bb..0bbcada 100644 (file)
@@ -1,533 +1,4 @@
 #include "parser.sep.0.h"
-/* method parser#ReduceAction175#action for (self: ReduceAction175, Parser) */
-void parser__ReduceAction175__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_nodearraylist12 /* var nodearraylist12: nullable Object */;
-val* var2 /* : nullable Object */;
-val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
-val* var3 /* : nullable Object */;
-val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
-val* var4 /* : nullable Object */;
-val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
-val* var5 /* : nullable Object */;
-val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
-val* var6 /* : nullable Object */;
-val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
-val* var7 /* : nullable Object */;
-val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
-val* var8 /* : nullable Object */;
-val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
-val* var9 /* : nullable Object */;
-val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
-val* var10 /* : nullable Object */;
-val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
-val* var11 /* : nullable Object */;
-val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
-val* var12 /* : nullable Object */;
-val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
-val* var13 /* : Array[Object] */;
-val* var_listnode7 /* var listnode7: Array[Object] */;
-val* var14 /* : Array[Object] */;
-val* var_listnode11 /* var listnode11: Array[Object] */;
-val* var15 /* : Array[Object] */;
-val* var_listnode12 /* var listnode12: Array[Object] */;
-val* var_pdocnode2 /* var pdocnode2: nullable Object */;
-short int var16 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
-short int var17 /* : Bool */;
-int cltype18;
-int idtype19;
-val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
-short int var20 /* : Bool */;
-int cltype21;
-int idtype22;
-val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
-short int var23 /* : Bool */;
-int cltype24;
-int idtype25;
-val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */;
-short int var29 /* : Bool */;
-int cltype30;
-int idtype31;
-val* var_listnode10 /* var listnode10: nullable Object */;
-short int var32 /* : Bool */;
-int cltype33;
-int idtype34;
-val* var35 /* : Array[Object] */;
-val* var_tkwendnode13 /* var tkwendnode13: nullable Object */;
-short int var36 /* : Bool */;
-int cltype37;
-int idtype38;
-val* var39 /* : AStdClassdef */;
-val* var40 /* : null */;
-val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
-long var41 /* : Int */;
-long var42 /* : 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_nodearraylist12 = var1;
-var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist11 = var2;
-var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist10 = var3;
-var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist9 = var4;
-var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist8 = var5;
-var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist7 = var6;
-var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist6 = var7;
-var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist5 = var8;
-var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist4 = var9;
-var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist3 = var10;
-var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist2 = var11;
-var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist1 = 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_listnode7 = 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_listnode11 = var14;
-var15 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
-var_listnode12 = var15;
-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) {
-var16 = 1;
-} else {
-if(cltype >= var_pdocnode2->type->table_size) {
-var16 = 0;
-} else {
-var16 = var_pdocnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8607);
-exit(1);
-}
-var_tkwredefnode3 = var_nodearraylist2;
-/* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
-cltype18 = type_nullable_parser_nodes__TKwredef.color;
-idtype19 = type_nullable_parser_nodes__TKwredef.id;
-if(var_tkwredefnode3 == NULL) {
-var17 = 1;
-} else {
-if(cltype18 >= var_tkwredefnode3->type->table_size) {
-var17 = 0;
-} else {
-var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
-}
-}
-if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8609);
-exit(1);
-}
-var_pvisibilitynode4 = var_nodearraylist3;
-/* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
-cltype21 = type_nullable_parser_nodes__AVisibility.color;
-idtype22 = type_nullable_parser_nodes__AVisibility.id;
-if(var_pvisibilitynode4 == NULL) {
-var20 = 1;
-} else {
-if(cltype21 >= var_pvisibilitynode4->type->table_size) {
-var20 = 0;
-} else {
-var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
-}
-}
-if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8611);
-exit(1);
-}
-var_pclasskindnode5 = var_nodearraylist4;
-/* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
-cltype24 = type_nullable_parser_nodes__AClasskind.color;
-idtype25 = type_nullable_parser_nodes__AClasskind.id;
-if(var_pclasskindnode5 == NULL) {
-var23 = 1;
-} else {
-if(cltype24 >= var_pclasskindnode5->type->table_size) {
-var23 = 0;
-} else {
-var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
-}
-}
-if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8613);
-exit(1);
-}
-var_tclassidnode6 = var_nodearraylist8;
-/* <var_tclassidnode6:nullable Object> isa nullable TClassid */
-cltype27 = type_nullable_parser_nodes__TClassid.color;
-idtype28 = type_nullable_parser_nodes__TClassid.id;
-if(var_tclassidnode6 == NULL) {
-var26 = 1;
-} else {
-if(cltype27 >= var_tclassidnode6->type->table_size) {
-var26 = 0;
-} else {
-var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
-}
-}
-if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8615);
-exit(1);
-}
-var_pexterncodeblocknode9 = var_nodearraylist9;
-/* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
-cltype30 = type_nullable_parser_nodes__AExternCodeBlock.color;
-idtype31 = type_nullable_parser_nodes__AExternCodeBlock.id;
-if(var_pexterncodeblocknode9 == NULL) {
-var29 = 1;
-} else {
-if(cltype30 >= var_pexterncodeblocknode9->type->table_size) {
-var29 = 0;
-} else {
-var29 = var_pexterncodeblocknode9->type->type_table[cltype30] == idtype31;
-}
-}
-if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8617);
-exit(1);
-}
-var_listnode10 = var_nodearraylist10;
-/* <var_listnode10:nullable Object> isa Array[Object] */
-cltype33 = type_array__Arraykernel__Object.color;
-idtype34 = type_array__Arraykernel__Object.id;
-if(var_listnode10 == NULL) {
-var32 = 0;
-} else {
-if(cltype33 >= var_listnode10->type->table_size) {
-var32 = 0;
-} else {
-var32 = var_listnode10->type->type_table[cltype33] == idtype34;
-}
-}
-if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8619);
-exit(1);
-}
-var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode10) /* concat on <self:ReduceAction175>*/;
-var_listnode11 = var35;
-var_tkwendnode13 = var_nodearraylist12;
-/* <var_tkwendnode13:nullable Object> isa nullable TKwend */
-cltype37 = type_nullable_parser_nodes__TKwend.color;
-idtype38 = type_nullable_parser_nodes__TKwend.id;
-if(var_tkwendnode13 == NULL) {
-var36 = 1;
-} else {
-if(cltype37 >= var_tkwendnode13->type->table_size) {
-var36 = 0;
-} else {
-var36 = var_tkwendnode13->type->type_table[cltype37] == idtype38;
-}
-}
-if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8622);
-exit(1);
-}
-var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
-var40 = NULL;
-((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var40, var_pexterncodeblocknode9, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
-var_pclassdefnode1 = var39;
-var_node_list = var_pclassdefnode1;
-var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction175> */
-var42 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var41) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var42, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction175#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction175__action(val* self, val* p0) {
-parser__ReduceAction175__action(self, p0);
-RET_LABEL:;
-}
-/* method parser#ReduceAction177#action for (self: ReduceAction177, Parser) */
-void parser__ReduceAction177__action(val* self, val* p0) {
-val* var_p /* var p: Parser */;
-val* var /* : null */;
-val* var_node_list /* var node_list: nullable Object */;
-val* var1 /* : nullable Object */;
-val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
-val* var2 /* : nullable Object */;
-val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
-val* var3 /* : nullable Object */;
-val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
-val* var4 /* : nullable Object */;
-val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
-val* var5 /* : nullable Object */;
-val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
-val* var6 /* : nullable Object */;
-val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
-val* var7 /* : nullable Object */;
-val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
-val* var8 /* : nullable Object */;
-val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
-val* var9 /* : nullable Object */;
-val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
-val* var10 /* : nullable Object */;
-val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
-val* var11 /* : Array[Object] */;
-val* var_listnode8 /* var listnode8: Array[Object] */;
-val* var12 /* : Array[Object] */;
-val* var_listnode12 /* var listnode12: Array[Object] */;
-val* var13 /* : Array[Object] */;
-val* var_listnode13 /* var listnode13: Array[Object] */;
-val* var_pdocnode2 /* var pdocnode2: nullable Object */;
-short int var14 /* : Bool */;
-int cltype;
-int idtype;
-val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
-short int var15 /* : Bool */;
-int cltype16;
-int idtype17;
-val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
-short int var18 /* : Bool */;
-int cltype19;
-int idtype20;
-val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
-short int var21 /* : Bool */;
-int cltype22;
-int idtype23;
-val* var_listnode7 /* var listnode7: nullable Object */;
-short int var24 /* : Bool */;
-int cltype25;
-int idtype26;
-val* var27 /* : Array[Object] */;
-val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
-short int var28 /* : Bool */;
-int cltype29;
-int idtype30;
-val* var_listnode11 /* var listnode11: nullable Object */;
-short int var31 /* : Bool */;
-int cltype32;
-int idtype33;
-val* var34 /* : Array[Object] */;
-val* var_tkwendnode14 /* var tkwendnode14: nullable Object */;
-short int var35 /* : Bool */;
-int cltype36;
-int idtype37;
-val* var38 /* : AStdClassdef */;
-val* var39 /* : null */;
-val* var40 /* : null */;
-val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
-long var41 /* : Int */;
-long var42 /* : Int */;
-var_p = p0;
-var = NULL;
-var_node_list = var;
-var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist10 = var1;
-var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist9 = var2;
-var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist8 = var3;
-var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist7 = var4;
-var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist6 = var5;
-var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist5 = var6;
-var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist4 = var7;
-var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist3 = var8;
-var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist2 = var9;
-var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist1 = var10;
-var11 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
-var_listnode8 = 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_listnode12 = 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_listnode13 = var13;
-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) {
-var14 = 1;
-} else {
-if(cltype >= var_pdocnode2->type->table_size) {
-var14 = 0;
-} else {
-var14 = var_pdocnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8659);
-exit(1);
-}
-var_pvisibilitynode4 = var_nodearraylist2;
-/* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
-cltype16 = type_nullable_parser_nodes__AVisibility.color;
-idtype17 = type_nullable_parser_nodes__AVisibility.id;
-if(var_pvisibilitynode4 == NULL) {
-var15 = 1;
-} else {
-if(cltype16 >= var_pvisibilitynode4->type->table_size) {
-var15 = 0;
-} else {
-var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
-}
-}
-if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8661);
-exit(1);
-}
-var_pclasskindnode5 = var_nodearraylist3;
-/* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
-cltype19 = type_nullable_parser_nodes__AClasskind.color;
-idtype20 = type_nullable_parser_nodes__AClasskind.id;
-if(var_pclasskindnode5 == NULL) {
-var18 = 1;
-} else {
-if(cltype19 >= var_pclasskindnode5->type->table_size) {
-var18 = 0;
-} else {
-var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
-}
-}
-if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8663);
-exit(1);
-}
-var_tclassidnode6 = var_nodearraylist5;
-/* <var_tclassidnode6:nullable Object> isa nullable TClassid */
-cltype22 = type_nullable_parser_nodes__TClassid.color;
-idtype23 = type_nullable_parser_nodes__TClassid.id;
-if(var_tclassidnode6 == NULL) {
-var21 = 1;
-} else {
-if(cltype22 >= var_tclassidnode6->type->table_size) {
-var21 = 0;
-} else {
-var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
-}
-}
-if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8665);
-exit(1);
-}
-var_listnode7 = var_nodearraylist6;
-/* <var_listnode7:nullable Object> isa Array[Object] */
-cltype25 = type_array__Arraykernel__Object.color;
-idtype26 = type_array__Arraykernel__Object.id;
-if(var_listnode7 == NULL) {
-var24 = 0;
-} else {
-if(cltype25 >= var_listnode7->type->table_size) {
-var24 = 0;
-} else {
-var24 = var_listnode7->type->type_table[cltype25] == idtype26;
-}
-}
-if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8667);
-exit(1);
-}
-var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction177>*/;
-var_listnode8 = var27;
-var_pexterncodeblocknode10 = var_nodearraylist7;
-/* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
-cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
-idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
-if(var_pexterncodeblocknode10 == NULL) {
-var28 = 1;
-} else {
-if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
-var28 = 0;
-} else {
-var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
-}
-}
-if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8670);
-exit(1);
-}
-var_listnode11 = var_nodearraylist8;
-/* <var_listnode11:nullable Object> isa Array[Object] */
-cltype32 = type_array__Arraykernel__Object.color;
-idtype33 = type_array__Arraykernel__Object.id;
-if(var_listnode11 == NULL) {
-var31 = 0;
-} else {
-if(cltype32 >= var_listnode11->type->table_size) {
-var31 = 0;
-} else {
-var31 = var_listnode11->type->type_table[cltype32] == idtype33;
-}
-}
-if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8672);
-exit(1);
-}
-var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction177>*/;
-var_listnode12 = var34;
-var_tkwendnode14 = var_nodearraylist10;
-/* <var_tkwendnode14:nullable Object> isa nullable TKwend */
-cltype36 = type_nullable_parser_nodes__TKwend.color;
-idtype37 = type_nullable_parser_nodes__TKwend.id;
-if(var_tkwendnode14 == NULL) {
-var35 = 1;
-} else {
-if(cltype36 >= var_tkwendnode14->type->table_size) {
-var35 = 0;
-} else {
-var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
-}
-}
-if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8675);
-exit(1);
-}
-var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
-var39 = NULL;
-var40 = NULL;
-((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var39, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var40, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var38:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var38);
-var_pclassdefnode1 = var38;
-var_node_list = var_pclassdefnode1;
-var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction177> */
-var42 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var41) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var42, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction177#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction177__action(val* self, val* p0) {
-parser__ReduceAction177__action(self, p0);
-RET_LABEL:;
-}
 /* method parser#ReduceAction178#action for (self: ReduceAction178, Parser) */
 void parser__ReduceAction178__action(val* self, val* p0) {
 val* var_p /* var p: Parser */;
@@ -631,15 +102,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode12 = 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_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -655,8 +123,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8713);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8465);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -672,8 +141,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8715);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8467);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -689,8 +159,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8717);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8469);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -706,8 +177,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8719);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8471);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -723,8 +195,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8721);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8473);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -740,8 +213,9 @@ var28 = var_listnode7->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8723);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8475);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction178>*/;
 var_listnode8 = var31;
@@ -759,8 +233,9 @@ var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8726);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8478);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -776,8 +251,9 @@ var35 = var_listnode11->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8728);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8480);
+show_backtrace(1);
 }
 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction178>*/;
 var_listnode12 = var38;
@@ -795,13 +271,13 @@ var39 = var_tkwendnode14->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8731);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8483);
+show_backtrace(1);
 }
 var42 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var43 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var42->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var42, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var43, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var42:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var42);
 var_pclassdefnode1 = var42;
 var_node_list = var_pclassdefnode1;
 var44 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction178> */
@@ -914,15 +390,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode12 = 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_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -938,8 +411,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8769);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8521);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -955,8 +429,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8771);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8523);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -972,8 +447,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8773);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8525);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -989,8 +465,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8775);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8527);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1006,8 +483,9 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8777);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8529);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction179>*/;
 var_listnode8 = var28;
@@ -1025,8 +503,9 @@ var29 = var_pexterncodeblocknode10->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8780);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8532);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -1042,8 +521,9 @@ var32 = var_listnode11->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8782);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8534);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction179>*/;
 var_listnode12 = var35;
@@ -1061,14 +541,14 @@ var36 = var_tkwendnode14->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8785);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8537);
+show_backtrace(1);
 }
 var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var40, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var41, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
 var_pclassdefnode1 = var39;
 var_node_list = var_pclassdefnode1;
 var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction179> */
@@ -1185,15 +665,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode12 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode13 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1209,8 +686,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8824);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8576);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1226,8 +704,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8826);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8578);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1243,8 +722,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8828);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8580);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1260,8 +740,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8830);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8582);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1277,8 +758,9 @@ var26 = var_listnode7->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8832);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8584);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction180>*/;
 var_listnode8 = var29;
@@ -1296,8 +778,9 @@ var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8835);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8587);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist10;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -1313,8 +796,9 @@ var33 = var_listnode11->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8837);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8589);
+show_backtrace(1);
 }
 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction180>*/;
 var_listnode12 = var36;
@@ -1332,14 +816,14 @@ var37 = var_tkwendnode14->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8840);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8592);
+show_backtrace(1);
 }
 var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var41, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var42, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var40:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var40);
 var_pclassdefnode1 = var40;
 var_node_list = var_pclassdefnode1;
 var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction180> */
@@ -1459,15 +943,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode12 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode13 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1483,8 +964,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8879);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8631);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -1500,8 +982,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8881);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8633);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1517,8 +1000,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8883);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8635);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1534,8 +1018,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8885);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8637);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1551,8 +1036,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8887);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8639);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1568,8 +1054,9 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8889);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8641);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction182>*/;
 var_listnode8 = var32;
@@ -1587,8 +1074,9 @@ var33 = var_pexterncodeblocknode10->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8892);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8644);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist10;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -1604,8 +1092,9 @@ var36 = var_listnode11->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8894);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8646);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction182>*/;
 var_listnode12 = var39;
@@ -1623,13 +1112,13 @@ var40 = var_tkwendnode14->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8897);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8649);
+show_backtrace(1);
 }
 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var44 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var44, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var43:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var43);
 var_pclassdefnode1 = var43;
 var_node_list = var_pclassdefnode1;
 var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction182> */
@@ -1753,15 +1242,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode12 = var15;
 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_listnode13 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1777,8 +1263,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8937);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8689);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -1794,8 +1281,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8939);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8691);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1811,8 +1299,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8941);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8693);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1828,8 +1317,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8943);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8695);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1845,8 +1335,9 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8945);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8697);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1862,8 +1353,9 @@ var30 = var_listnode7->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8947);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8699);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction183>*/;
 var_listnode8 = var33;
@@ -1881,8 +1373,9 @@ var34 = var_pexterncodeblocknode10->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8950);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8702);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist11;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -1898,8 +1391,9 @@ var37 = var_listnode11->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8952);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8704);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction183>*/;
 var_listnode12 = var40;
@@ -1917,13 +1411,13 @@ var41 = var_tkwendnode14->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8955);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8707);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var45, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction183> */
@@ -2038,15 +1532,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = 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_listnode16 = 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_listnode17 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2062,8 +1553,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8992);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8744);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2079,8 +1571,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8994);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8746);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2096,8 +1589,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8996);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8748);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2113,12 +1607,12 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 8998);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8750);
+show_backtrace(1);
 }
 var24 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var24->class->vft[COLOR_array__Array__init]))(var24) /* init on <var24:Array[Object]>*/;
-CHECK_NEW_array__Array(var24);
 var_listnode12 = var24;
 var_listnode11 = var_nodearraylist6;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2134,8 +1628,9 @@ var25 = var_listnode11->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9001);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8753);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction185>*/;
 var_listnode12 = var28;
@@ -2144,7 +1639,6 @@ var30 = NULL;
 var31 = NULL;
 var32 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var29, var30, var31, var_listnode12, var32) /* init_aannotations on <var29:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var29);
 var_pannotationsnode8 = var29;
 var_pexterncodeblocknode14 = var_nodearraylist7;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -2160,8 +1654,9 @@ var33 = var_pexterncodeblocknode14->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9010);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8762);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist8;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -2177,8 +1672,9 @@ var36 = var_listnode15->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9012);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8764);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction185>*/;
 var_listnode16 = var39;
@@ -2196,13 +1692,13 @@ var40 = var_tkwendnode18->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9015);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8767);
+show_backtrace(1);
 }
 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var44 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var44, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var43:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var43);
 var_pclassdefnode1 = var43;
 var_node_list = var_pclassdefnode1;
 var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction185> */
@@ -2324,15 +1820,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode16 = 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_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2348,8 +1841,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9053);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8805);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -2365,8 +1859,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9055);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8807);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2382,8 +1877,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9057);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8809);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2399,8 +1895,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9059);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8811);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2416,12 +1913,12 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9061);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8813);
+show_backtrace(1);
 }
 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on <var28:Array[Object]>*/;
-CHECK_NEW_array__Array(var28);
 var_listnode12 = var28;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2437,8 +1934,9 @@ var29 = var_listnode11->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9064);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8816);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction186>*/;
 var_listnode12 = var32;
@@ -2447,7 +1945,6 @@ var34 = NULL;
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode12, var36) /* init_aannotations on <var33:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var33);
 var_pannotationsnode8 = var33;
 var_pexterncodeblocknode14 = var_nodearraylist8;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -2463,8 +1960,9 @@ var37 = var_pexterncodeblocknode14->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9073);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8825);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist9;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -2480,8 +1978,9 @@ var40 = var_listnode15->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9075);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8827);
+show_backtrace(1);
 }
 var43 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction186>*/;
 var_listnode16 = var43;
@@ -2499,12 +1998,12 @@ var44 = var_tkwendnode18->type->type_table[cltype45] == idtype46;
 }
 }
 if (!var44) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9078);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8830);
+show_backtrace(1);
 }
 var47 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var47->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var47, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var47:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var47);
 var_pclassdefnode1 = var47;
 var_node_list = var_pclassdefnode1;
 var48 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction186> */
@@ -2623,15 +2122,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode16 = 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_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2647,8 +2143,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9116);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8868);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2664,8 +2161,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9118);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8870);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2681,8 +2179,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9120);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8872);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2698,12 +2197,12 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9122);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8874);
+show_backtrace(1);
 }
 var25 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var25->class->vft[COLOR_array__Array__init]))(var25) /* init on <var25:Array[Object]>*/;
-CHECK_NEW_array__Array(var25);
 var_listnode12 = var25;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2719,8 +2218,9 @@ var26 = var_listnode11->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9125);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8877);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction187>*/;
 var_listnode12 = var29;
@@ -2729,7 +2229,6 @@ var31 = NULL;
 var32 = NULL;
 var33 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var30, var31, var32, var_listnode12, var33) /* init_aannotations on <var30:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var30);
 var_pannotationsnode8 = var30;
 var_pexterncodeblocknode14 = var_nodearraylist8;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -2745,8 +2244,9 @@ var34 = var_pexterncodeblocknode14->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9134);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8886);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist9;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -2762,8 +2262,9 @@ var37 = var_listnode15->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9136);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8888);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction187>*/;
 var_listnode16 = var40;
@@ -2781,13 +2282,13 @@ var41 = var_tkwendnode18->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9139);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8891);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var45, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction187> */
@@ -2910,15 +2411,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2934,8 +2432,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9178);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8930);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2951,8 +2450,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9180);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8932);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2968,8 +2468,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9182);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8934);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2985,12 +2486,12 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9184);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8936);
+show_backtrace(1);
 }
 var26 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var26->class->vft[COLOR_array__Array__init]))(var26) /* init on <var26:Array[Object]>*/;
-CHECK_NEW_array__Array(var26);
 var_listnode12 = var26;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3006,8 +2507,9 @@ var27 = var_listnode11->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9187);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8939);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction188>*/;
 var_listnode12 = var30;
@@ -3016,7 +2518,6 @@ var32 = NULL;
 var33 = NULL;
 var34 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var31, var32, var33, var_listnode12, var34) /* init_aannotations on <var31:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var31);
 var_pannotationsnode8 = var31;
 var_pexterncodeblocknode14 = var_nodearraylist9;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -3032,8 +2533,9 @@ var35 = var_pexterncodeblocknode14->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9196);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8948);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist10;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -3049,8 +2551,9 @@ var38 = var_listnode15->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9198);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8950);
+show_backtrace(1);
 }
 var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction188>*/;
 var_listnode16 = var41;
@@ -3068,13 +2571,13 @@ var42 = var_tkwendnode18->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9201);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8953);
+show_backtrace(1);
 }
 var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var46 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var46, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var45:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var45);
 var_pclassdefnode1 = var45;
 var_node_list = var_pclassdefnode1;
 var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction188> */
@@ -3200,15 +2703,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3224,8 +2724,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9240);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8992);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -3241,8 +2742,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9242);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8994);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3258,8 +2760,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9244);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8996);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3275,8 +2778,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9246);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 8998);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3292,12 +2796,12 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9248);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9000);
+show_backtrace(1);
 }
 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
 var_listnode12 = var29;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3313,8 +2817,9 @@ var30 = var_listnode11->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9251);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9003);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction190>*/;
 var_listnode12 = var33;
@@ -3323,7 +2828,6 @@ var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode12, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
 var_pannotationsnode8 = var34;
 var_pexterncodeblocknode14 = var_nodearraylist9;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -3339,8 +2843,9 @@ var38 = var_pexterncodeblocknode14->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9260);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9012);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist10;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -3356,8 +2861,9 @@ var41 = var_listnode15->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9262);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9014);
+show_backtrace(1);
 }
 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction190>*/;
 var_listnode16 = var44;
@@ -3375,12 +2881,12 @@ var45 = var_tkwendnode18->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9265);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9017);
+show_backtrace(1);
 }
 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var48->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var48, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var48:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var48);
 var_pclassdefnode1 = var48;
 var_node_list = var_pclassdefnode1;
 var49 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction190> */
@@ -3510,15 +3016,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode16 = var15;
 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_listnode17 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3534,8 +3037,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9305);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9057);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -3551,8 +3055,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9307);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9059);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3568,8 +3073,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9309);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9061);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3585,8 +3091,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9311);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9063);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3602,12 +3109,12 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9313);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9065);
+show_backtrace(1);
 }
 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
-CHECK_NEW_array__Array(var30);
 var_listnode12 = var30;
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3623,8 +3130,9 @@ var31 = var_listnode11->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9316);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9068);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction191>*/;
 var_listnode12 = var34;
@@ -3633,7 +3141,6 @@ var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode12, var38) /* init_aannotations on <var35:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var35);
 var_pannotationsnode8 = var35;
 var_pexterncodeblocknode14 = var_nodearraylist10;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -3649,8 +3156,9 @@ var39 = var_pexterncodeblocknode14->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9325);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9077);
+show_backtrace(1);
 }
 var_listnode15 = var_nodearraylist11;
 /* <var_listnode15:nullable Object> isa Array[Object] */
@@ -3666,8 +3174,9 @@ var42 = var_listnode15->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9327);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9079);
+show_backtrace(1);
 }
 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction191>*/;
 var_listnode16 = var45;
@@ -3685,12 +3194,12 @@ var46 = var_tkwendnode18->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9330);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9082);
+show_backtrace(1);
 }
 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var49:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var49);
 var_pclassdefnode1 = var49;
 var_node_list = var_pclassdefnode1;
 var50 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction191> */
@@ -3814,15 +3323,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode17 = 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_listnode18 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3838,8 +3344,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9368);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9120);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3855,8 +3362,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9370);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9122);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3872,8 +3380,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9372);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9124);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3889,8 +3398,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9374);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9126);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist6;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -3906,14 +3416,14 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9376);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9128);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction193>*/;
 var_listnode8 = var28;
 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
 var_listnode13 = var29;
 var_listnode12 = var_nodearraylist7;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -3929,8 +3439,9 @@ var30 = var_listnode12->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9380);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9132);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction193>*/;
 var_listnode13 = var33;
@@ -3939,7 +3450,6 @@ var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode13, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
 var_pannotationsnode9 = var34;
 var_pexterncodeblocknode15 = var_nodearraylist8;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -3955,8 +3465,9 @@ var38 = var_pexterncodeblocknode15->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9389);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9141);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist9;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -3972,8 +3483,9 @@ var41 = var_listnode16->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9391);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9143);
+show_backtrace(1);
 }
 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction193>*/;
 var_listnode17 = var44;
@@ -3991,13 +3503,13 @@ var45 = var_tkwendnode19->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9394);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9146);
+show_backtrace(1);
 }
 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var49 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var48->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var48, var_pdocnode2, var49, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var48:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var48);
 var_pclassdefnode1 = var48;
 var_node_list = var_pclassdefnode1;
 var50 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction193> */
@@ -4128,15 +3640,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode17 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4152,8 +3661,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9433);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9185);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -4169,8 +3679,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9435);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9187);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4186,8 +3697,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9437);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9189);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4203,8 +3715,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9439);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9191);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4220,8 +3733,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9441);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9193);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4237,14 +3751,14 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9443);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9195);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction194>*/;
 var_listnode8 = var32;
 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on <var33:Array[Object]>*/;
-CHECK_NEW_array__Array(var33);
 var_listnode13 = var33;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4260,8 +3774,9 @@ var34 = var_listnode12->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9447);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9199);
+show_backtrace(1);
 }
 var37 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction194>*/;
 var_listnode13 = var37;
@@ -4270,7 +3785,6 @@ var39 = NULL;
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var38, var39, var40, var_listnode13, var41) /* init_aannotations on <var38:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var38);
 var_pannotationsnode9 = var38;
 var_pexterncodeblocknode15 = var_nodearraylist9;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -4286,8 +3800,9 @@ var42 = var_pexterncodeblocknode15->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9456);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9208);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist10;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -4303,8 +3818,9 @@ var45 = var_listnode16->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9458);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9210);
+show_backtrace(1);
 }
 var48 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction194>*/;
 var_listnode17 = var48;
@@ -4322,12 +3838,12 @@ var49 = var_tkwendnode19->type->type_table[cltype50] == idtype51;
 }
 }
 if (!var49) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9461);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9213);
+show_backtrace(1);
 }
 var52 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var52->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var52, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var52:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var52);
 var_pclassdefnode1 = var52;
 var_node_list = var_pclassdefnode1;
 var53 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction194> */
@@ -4455,15 +3971,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode17 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4479,8 +3992,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9500);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9252);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4496,8 +4010,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9502);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9254);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4513,8 +4028,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9504);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9256);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4530,8 +4046,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9506);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9258);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4547,14 +4064,14 @@ var26 = var_listnode7->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9508);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9260);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction195>*/;
 var_listnode8 = var29;
 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
-CHECK_NEW_array__Array(var30);
 var_listnode13 = var30;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4570,8 +4087,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9512);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9264);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction195>*/;
 var_listnode13 = var34;
@@ -4580,7 +4098,6 @@ var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode13, var38) /* init_aannotations on <var35:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var35);
 var_pannotationsnode9 = var35;
 var_pexterncodeblocknode15 = var_nodearraylist9;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -4596,8 +4113,9 @@ var39 = var_pexterncodeblocknode15->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9521);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9273);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist10;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -4613,8 +4131,9 @@ var42 = var_listnode16->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9523);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9275);
+show_backtrace(1);
 }
 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction195>*/;
 var_listnode17 = var45;
@@ -4632,13 +4151,13 @@ var46 = var_tkwendnode19->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9526);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9278);
+show_backtrace(1);
 }
 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var50 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var50, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var49:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var49);
 var_pclassdefnode1 = var49;
 var_node_list = var_pclassdefnode1;
 var51 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction195> */
@@ -4770,15 +4289,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 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_listnode18 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4794,8 +4310,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9566);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9318);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4811,8 +4328,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9568);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9320);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4828,8 +4346,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9570);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9322);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4845,8 +4364,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9572);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9324);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4862,14 +4382,14 @@ var27 = var_listnode7->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9574);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9326);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction196>*/;
 var_listnode8 = var30;
 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on <var31:Array[Object]>*/;
-CHECK_NEW_array__Array(var31);
 var_listnode13 = var31;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4885,8 +4405,9 @@ var32 = var_listnode12->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9578);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9330);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction196>*/;
 var_listnode13 = var35;
@@ -4895,7 +4416,6 @@ var37 = NULL;
 var38 = NULL;
 var39 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var36, var37, var38, var_listnode13, var39) /* init_aannotations on <var36:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var36);
 var_pannotationsnode9 = var36;
 var_pexterncodeblocknode15 = var_nodearraylist10;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -4911,8 +4431,9 @@ var40 = var_pexterncodeblocknode15->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9587);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9339);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist11;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -4928,8 +4449,9 @@ var43 = var_listnode16->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9589);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9341);
+show_backtrace(1);
 }
 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction196>*/;
 var_listnode17 = var46;
@@ -4947,13 +4469,13 @@ var47 = var_tkwendnode19->type->type_table[cltype48] == idtype49;
 }
 }
 if (!var47) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9592);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9344);
+show_backtrace(1);
 }
 var50 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var51 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var50->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var50, var_pdocnode2, var51, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var50:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var50);
 var_pclassdefnode1 = var50;
 var_node_list = var_pclassdefnode1;
 var52 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction196> */
@@ -5088,15 +4610,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 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_listnode18 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5112,8 +4631,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9632);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9384);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -5129,8 +4649,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9634);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9386);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5146,8 +4667,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9636);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9388);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5163,8 +4685,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9638);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9390);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5180,8 +4703,9 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9640);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9392);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -5197,14 +4721,14 @@ var30 = var_listnode7->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9642);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9394);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction198>*/;
 var_listnode8 = var33;
 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var34->class->vft[COLOR_array__Array__init]))(var34) /* init on <var34:Array[Object]>*/;
-CHECK_NEW_array__Array(var34);
 var_listnode13 = var34;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -5220,8 +4744,9 @@ var35 = var_listnode12->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9646);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9398);
+show_backtrace(1);
 }
 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction198>*/;
 var_listnode13 = var38;
@@ -5230,7 +4755,6 @@ var40 = NULL;
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var39, var40, var41, var_listnode13, var42) /* init_aannotations on <var39:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var39);
 var_pannotationsnode9 = var39;
 var_pexterncodeblocknode15 = var_nodearraylist10;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -5246,8 +4770,9 @@ var43 = var_pexterncodeblocknode15->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9655);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9407);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist11;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -5263,8 +4788,9 @@ var46 = var_listnode16->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9657);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9409);
+show_backtrace(1);
 }
 var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction198>*/;
 var_listnode17 = var49;
@@ -5282,12 +4808,12 @@ var50 = var_tkwendnode19->type->type_table[cltype51] == idtype52;
 }
 }
 if (!var50) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9660);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9412);
+show_backtrace(1);
 }
 var53 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var53->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var53, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var53:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var53);
 var_pclassdefnode1 = var53;
 var_node_list = var_pclassdefnode1;
 var54 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction198> */
@@ -5426,15 +4952,12 @@ var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode8 = var15;
 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_listnode17 = 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_listnode18 = var17;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5450,8 +4973,9 @@ var18 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9701);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9453);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -5467,8 +4991,9 @@ var19 = var_tkwredefnode3->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9703);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9455);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5484,8 +5009,9 @@ var22 = var_pvisibilitynode4->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9705);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9457);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5501,8 +5027,9 @@ var25 = var_pclasskindnode5->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9707);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9459);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5518,8 +5045,9 @@ var28 = var_tclassidnode6->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9709);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9461);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -5535,14 +5063,14 @@ var31 = var_listnode7->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9711);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9463);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction199>*/;
 var_listnode8 = var34;
 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var35->class->vft[COLOR_array__Array__init]))(var35) /* init on <var35:Array[Object]>*/;
-CHECK_NEW_array__Array(var35);
 var_listnode13 = var35;
 var_listnode12 = var_nodearraylist10;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -5558,8 +5086,9 @@ var36 = var_listnode12->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9715);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9467);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction199>*/;
 var_listnode13 = var39;
@@ -5568,7 +5097,6 @@ var41 = NULL;
 var42 = NULL;
 var43 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var40, var41, var42, var_listnode13, var43) /* init_aannotations on <var40:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var40);
 var_pannotationsnode9 = var40;
 var_pexterncodeblocknode15 = var_nodearraylist11;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -5584,8 +5112,9 @@ var44 = var_pexterncodeblocknode15->type->type_table[cltype45] == idtype46;
 }
 }
 if (!var44) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9724);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9476);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist12;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -5601,8 +5130,9 @@ var47 = var_listnode16->type->type_table[cltype48] == idtype49;
 }
 }
 if (!var47) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9726);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9478);
+show_backtrace(1);
 }
 var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction199>*/;
 var_listnode17 = var50;
@@ -5620,12 +5150,12 @@ var51 = var_tkwendnode19->type->type_table[cltype52] == idtype53;
 }
 }
 if (!var51) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9729);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9481);
+show_backtrace(1);
 }
 var54 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var54->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var54, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var54:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var54);
 var_pclassdefnode1 = var54;
 var_node_list = var_pclassdefnode1;
 var55 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction199> */
@@ -5718,15 +5248,12 @@ var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = 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_listnode7 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode10 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode12 = var11;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5742,8 +5269,9 @@ var12 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var12) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9764);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9516);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5759,8 +5287,9 @@ var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9766);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9518);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5776,8 +5305,9 @@ var16 = var_pclasskindnode5->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9768);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9520);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5793,8 +5323,9 @@ var19 = var_tclassidnode6->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9770);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9522);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist6;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -5810,8 +5341,9 @@ var22 = var_listnode11->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9772);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9524);
+show_backtrace(1);
 }
 var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction201>*/;
 var_listnode12 = var25;
@@ -5829,15 +5361,15 @@ var26 = var_tkwendnode13->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9775);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9527);
+show_backtrace(1);
 }
 var29 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var30 = NULL;
 var31 = NULL;
 var32 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var31, var32, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var29:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var29);
 var_pclassdefnode1 = var29;
 var_node_list = var_pclassdefnode1;
 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction201> */
@@ -5937,15 +5469,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode7 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode10 = 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_listnode12 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5961,8 +5490,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9811);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9563);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -5978,8 +5508,9 @@ var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9813);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9565);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5995,8 +5526,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9815);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9567);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6012,8 +5544,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9817);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9569);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6029,8 +5562,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9819);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9571);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6046,8 +5580,9 @@ var26 = var_listnode11->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9821);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9573);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction202>*/;
 var_listnode12 = var29;
@@ -6065,14 +5600,14 @@ var30 = var_tkwendnode13->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9824);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9576);
+show_backtrace(1);
 }
 var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var34 = NULL;
 var35 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var34, var35, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var33:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var33);
 var_pclassdefnode1 = var33;
 var_node_list = var_pclassdefnode1;
 var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction202> */
@@ -6169,15 +5704,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode7 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode10 = 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_listnode12 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6193,8 +5725,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9860);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9612);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6210,8 +5743,9 @@ var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9862);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9614);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6227,8 +5761,9 @@ var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9864);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9616);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6244,8 +5779,9 @@ var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9866);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9618);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6261,8 +5797,9 @@ var23 = var_listnode11->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9868);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9620);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction203>*/;
 var_listnode12 = var26;
@@ -6280,15 +5817,15 @@ var27 = var_tkwendnode13->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9871);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9623);
+show_backtrace(1);
 }
 var30 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var31 = NULL;
 var32 = NULL;
 var33 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var30, var_pdocnode2, var31, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var32, var33, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var30:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var30);
 var_pclassdefnode1 = var30;
 var_node_list = var_pclassdefnode1;
 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction203> */
@@ -6389,15 +5926,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = 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_listnode10 = 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_listnode12 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6413,8 +5947,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9908);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9660);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6430,8 +5965,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9910);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9662);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6447,8 +5983,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9912);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9664);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6464,8 +6001,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9914);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9666);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6481,8 +6019,9 @@ var24 = var_listnode11->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9916);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9668);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction204>*/;
 var_listnode12 = var27;
@@ -6500,15 +6039,15 @@ var28 = var_tkwendnode13->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9919);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9671);
+show_backtrace(1);
 }
 var31 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var32 = NULL;
 var33 = NULL;
 var34 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var31, var_pdocnode2, var32, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var33, var34, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var31:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var31);
 var_pclassdefnode1 = var31;
 var_node_list = var_pclassdefnode1;
 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction204> */
@@ -6612,15 +6151,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = 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_listnode10 = 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_listnode12 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6636,8 +6172,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9956);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9708);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -6653,8 +6190,9 @@ var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9958);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9710);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6670,8 +6208,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9960);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9712);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6687,8 +6226,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9962);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9714);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6704,8 +6244,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9964);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9716);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6721,8 +6262,9 @@ var27 = var_listnode11->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9966);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9718);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction206>*/;
 var_listnode12 = var30;
@@ -6740,14 +6282,14 @@ var31 = var_tkwendnode13->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 9969);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9721);
+show_backtrace(1);
 }
 var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var35, var36, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var34:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var34);
 var_pclassdefnode1 = var34;
 var_node_list = var_pclassdefnode1;
 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction206> */
@@ -6855,15 +6397,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode10 = 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_listnode12 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6879,8 +6418,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10007);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9759);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -6896,8 +6436,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10009);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9761);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6913,8 +6454,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10011);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9763);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6930,8 +6472,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10013);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9765);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6947,8 +6490,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10015);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9767);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6964,8 +6508,9 @@ var28 = var_listnode11->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10017);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9769);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction207>*/;
 var_listnode12 = var31;
@@ -6983,14 +6528,14 @@ var32 = var_tkwendnode13->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10020);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9772);
+show_backtrace(1);
 }
 var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var36, var37, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var35:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var35);
 var_pclassdefnode1 = var35;
 var_node_list = var_pclassdefnode1;
 var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction207> */
@@ -7092,15 +6637,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode8 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode11 = 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_listnode13 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7116,8 +6658,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10056);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9808);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7133,8 +6676,9 @@ var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10058);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9810);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7150,8 +6694,9 @@ var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10060);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9812);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7167,8 +6712,9 @@ var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10062);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9814);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist6;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7184,8 +6730,9 @@ var23 = var_listnode7->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10064);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9816);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction209>*/;
 var_listnode8 = var26;
@@ -7203,8 +6750,9 @@ var27 = var_listnode12->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10067);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9819);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction209>*/;
 var_listnode13 = var30;
@@ -7222,15 +6770,15 @@ var31 = var_tkwendnode14->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10070);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9822);
+show_backtrace(1);
 }
 var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var35, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var36, var37, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var34:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var34);
 var_pclassdefnode1 = var34;
 var_node_list = var_pclassdefnode1;
 var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction209> */
@@ -7339,15 +6887,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode8 = 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_listnode11 = 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_listnode13 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7363,8 +6908,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10107);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9859);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -7380,8 +6926,9 @@ var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10109);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9861);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7397,8 +6944,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10111);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9863);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7414,8 +6962,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10113);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9865);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7431,8 +6980,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10115);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9867);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7448,8 +6998,9 @@ var27 = var_listnode7->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10117);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9869);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction210>*/;
 var_listnode8 = var30;
@@ -7467,8 +7018,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10120);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9872);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction210>*/;
 var_listnode13 = var34;
@@ -7486,14 +7038,14 @@ var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10123);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9875);
+show_backtrace(1);
 }
 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var39 = NULL;
 var40 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var39, var40, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var38:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var38);
 var_pclassdefnode1 = var38;
 var_node_list = var_pclassdefnode1;
 var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction210> */
@@ -7599,15 +7151,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode8 = 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_listnode11 = 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_listnode13 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7623,8 +7172,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10160);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9912);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7640,8 +7190,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10162);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9914);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7657,8 +7208,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10164);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9916);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7674,8 +7226,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10166);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9918);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7691,8 +7244,9 @@ var24 = var_listnode7->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10168);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9920);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction211>*/;
 var_listnode8 = var27;
@@ -7710,8 +7264,9 @@ var28 = var_listnode12->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10171);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9923);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction211>*/;
 var_listnode13 = var31;
@@ -7729,15 +7284,15 @@ var32 = var_tkwendnode14->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10174);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9926);
+show_backtrace(1);
 }
 var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var36, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var37, var38, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var35:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var35);
 var_pclassdefnode1 = var35;
 var_node_list = var_pclassdefnode1;
 var39 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction211> */
@@ -7847,15 +7402,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode11 = 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_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7871,8 +7423,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10212);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9964);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7888,8 +7441,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10214);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9966);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7905,8 +7459,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10216);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9968);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7922,8 +7477,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10218);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9970);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7939,8 +7495,9 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10220);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9972);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction212>*/;
 var_listnode8 = var28;
@@ -7958,8 +7515,9 @@ var29 = var_listnode12->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10223);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9975);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction212>*/;
 var_listnode13 = var32;
@@ -7977,15 +7535,15 @@ var33 = var_tkwendnode14->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10226);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 9978);
+show_backtrace(1);
 }
 var36 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var37 = NULL;
 var38 = NULL;
 var39 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var36, var_pdocnode2, var37, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var38, var39, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var36:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var36);
 var_pclassdefnode1 = var36;
 var_node_list = var_pclassdefnode1;
 var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction212> */
@@ -8098,15 +7656,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode11 = 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_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8122,8 +7677,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10264);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10016);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -8139,8 +7695,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10266);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10018);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8156,8 +7713,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10268);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10020);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8173,8 +7731,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10270);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10022);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8190,8 +7749,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10272);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10024);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8207,8 +7767,9 @@ var28 = var_listnode7->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10274);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10026);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction214>*/;
 var_listnode8 = var31;
@@ -8226,8 +7787,9 @@ var32 = var_listnode12->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10277);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10029);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction214>*/;
 var_listnode13 = var35;
@@ -8245,14 +7807,14 @@ var36 = var_tkwendnode14->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10280);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10032);
+show_backtrace(1);
 }
 var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var40, var41, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
 var_pclassdefnode1 = var39;
 var_node_list = var_pclassdefnode1;
 var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction214> */
@@ -8369,15 +7931,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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;
 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_listnode11 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode13 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8393,8 +7952,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10319);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10071);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -8410,8 +7970,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10321);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10073);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8427,8 +7988,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10323);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10075);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8444,8 +8006,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10325);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10077);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8461,8 +8024,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10327);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10079);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8478,8 +8042,9 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10329);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10081);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction215>*/;
 var_listnode8 = var32;
@@ -8497,8 +8062,9 @@ var33 = var_listnode12->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10332);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10084);
+show_backtrace(1);
 }
 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction215>*/;
 var_listnode13 = var36;
@@ -8516,14 +8082,14 @@ var37 = var_tkwendnode14->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10335);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10087);
+show_backtrace(1);
 }
 var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var41, var42, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var40:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var40);
 var_pclassdefnode1 = var40;
 var_node_list = var_pclassdefnode1;
 var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction215> */
@@ -8631,15 +8197,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode7 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode15 = 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_listnode17 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8655,8 +8218,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10371);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10123);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8672,8 +8236,9 @@ var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10373);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10125);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8689,8 +8254,9 @@ var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10375);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10127);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8706,12 +8272,12 @@ var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10377);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10129);
+show_backtrace(1);
 }
 var23 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var23->class->vft[COLOR_array__Array__init]))(var23) /* init on <var23:Array[Object]>*/;
-CHECK_NEW_array__Array(var23);
 var_listnode12 = var23;
 var_listnode11 = var_nodearraylist6;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -8727,8 +8293,9 @@ var24 = var_listnode11->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10380);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10132);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction217>*/;
 var_listnode12 = var27;
@@ -8737,7 +8304,6 @@ var29 = NULL;
 var30 = NULL;
 var31 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var28, var29, var30, var_listnode12, var31) /* init_aannotations on <var28:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var28);
 var_pannotationsnode8 = var28;
 var_listnode16 = var_nodearraylist7;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -8753,8 +8319,9 @@ var32 = var_listnode16->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10389);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10141);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction217>*/;
 var_listnode17 = var35;
@@ -8772,14 +8339,14 @@ var36 = var_tkwendnode18->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10392);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10144);
+show_backtrace(1);
 }
 var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var40, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var41, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
 var_pclassdefnode1 = var39;
 var_node_list = var_pclassdefnode1;
 var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction217> */
@@ -8894,15 +8461,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = 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_listnode15 = 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_listnode17 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8918,8 +8482,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10429);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10181);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -8935,8 +8500,9 @@ var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10431);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10183);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8952,8 +8518,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10433);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10185);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8969,8 +8536,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10435);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10187);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8986,12 +8554,12 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10437);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10189);
+show_backtrace(1);
 }
 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var27->class->vft[COLOR_array__Array__init]))(var27) /* init on <var27:Array[Object]>*/;
-CHECK_NEW_array__Array(var27);
 var_listnode12 = var27;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -9007,8 +8575,9 @@ var28 = var_listnode11->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10440);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10192);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction218>*/;
 var_listnode12 = var31;
@@ -9017,7 +8586,6 @@ var33 = NULL;
 var34 = NULL;
 var35 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var32, var33, var34, var_listnode12, var35) /* init_aannotations on <var32:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var32);
 var_pannotationsnode8 = var32;
 var_listnode16 = var_nodearraylist8;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -9033,8 +8601,9 @@ var36 = var_listnode16->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10449);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10201);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction218>*/;
 var_listnode17 = var39;
@@ -9052,13 +8621,13 @@ var40 = var_tkwendnode18->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10452);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10204);
+show_backtrace(1);
 }
 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var44 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var44, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var43:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var43);
 var_pclassdefnode1 = var43;
 var_node_list = var_pclassdefnode1;
 var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction218> */
@@ -9170,15 +8739,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = 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_listnode15 = 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_listnode17 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9194,8 +8760,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10489);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10241);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9211,8 +8778,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10491);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10243);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9228,8 +8796,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10493);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10245);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9245,12 +8814,12 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10495);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10247);
+show_backtrace(1);
 }
 var24 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var24->class->vft[COLOR_array__Array__init]))(var24) /* init on <var24:Array[Object]>*/;
-CHECK_NEW_array__Array(var24);
 var_listnode12 = var24;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -9266,8 +8835,9 @@ var25 = var_listnode11->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10498);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10250);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction219>*/;
 var_listnode12 = var28;
@@ -9276,7 +8846,6 @@ var30 = NULL;
 var31 = NULL;
 var32 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var29, var30, var31, var_listnode12, var32) /* init_aannotations on <var29:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var29);
 var_pannotationsnode8 = var29;
 var_listnode16 = var_nodearraylist8;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -9292,8 +8861,9 @@ var33 = var_listnode16->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10507);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10259);
+show_backtrace(1);
 }
 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction219>*/;
 var_listnode17 = var36;
@@ -9311,14 +8881,14 @@ var37 = var_tkwendnode18->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10510);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10262);
+show_backtrace(1);
 }
 var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var41, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var42, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var40:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var40);
 var_pclassdefnode1 = var40;
 var_node_list = var_pclassdefnode1;
 var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction219> */
@@ -9434,15 +9004,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode15 = 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_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9458,8 +9025,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10548);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10300);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9475,8 +9043,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10550);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10302);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9492,8 +9061,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10552);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10304);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9509,12 +9079,12 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10554);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10306);
+show_backtrace(1);
 }
 var25 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var25->class->vft[COLOR_array__Array__init]))(var25) /* init on <var25:Array[Object]>*/;
-CHECK_NEW_array__Array(var25);
 var_listnode12 = var25;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -9530,8 +9100,9 @@ var26 = var_listnode11->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10557);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10309);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction220>*/;
 var_listnode12 = var29;
@@ -9540,7 +9111,6 @@ var31 = NULL;
 var32 = NULL;
 var33 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var30, var31, var32, var_listnode12, var33) /* init_aannotations on <var30:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var30);
 var_pannotationsnode8 = var30;
 var_listnode16 = var_nodearraylist9;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -9556,8 +9126,9 @@ var34 = var_listnode16->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10566);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10318);
+show_backtrace(1);
 }
 var37 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction220>*/;
 var_listnode17 = var37;
@@ -9575,14 +9146,14 @@ var38 = var_tkwendnode18->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10569);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10321);
+show_backtrace(1);
 }
 var41 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var42 = NULL;
 var43 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var41->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var41, var_pdocnode2, var42, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var43, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var41:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var41);
 var_pclassdefnode1 = var41;
 var_node_list = var_pclassdefnode1;
 var44 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction220> */
@@ -9701,15 +9272,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = 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_listnode7 = 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_listnode15 = 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_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9725,8 +9293,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10607);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10359);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -9742,8 +9311,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10609);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10361);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9759,8 +9329,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10611);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10363);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9776,8 +9347,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10613);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10365);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9793,12 +9365,12 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10615);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10367);
+show_backtrace(1);
 }
 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on <var28:Array[Object]>*/;
-CHECK_NEW_array__Array(var28);
 var_listnode12 = var28;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -9814,8 +9386,9 @@ var29 = var_listnode11->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10618);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10370);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction222>*/;
 var_listnode12 = var32;
@@ -9824,7 +9397,6 @@ var34 = NULL;
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode12, var36) /* init_aannotations on <var33:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var33);
 var_pannotationsnode8 = var33;
 var_listnode16 = var_nodearraylist9;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -9840,8 +9412,9 @@ var37 = var_listnode16->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10627);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10379);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction222>*/;
 var_listnode17 = var40;
@@ -9859,13 +9432,13 @@ var41 = var_tkwendnode18->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10630);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10382);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var45, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction222> */
@@ -9878,3 +9451,292 @@ void VIRTUAL_parser__ReduceAction222__action(val* self, val* p0) {
 parser__ReduceAction222__action(self, p0);
 RET_LABEL:;
 }
+/* method parser#ReduceAction223#action for (self: ReduceAction223, Parser) */
+void parser__ReduceAction223__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_nodearraylist12 /* var nodearraylist12: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var11 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var12 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var13 /* : Array[Object] */;
+val* var_listnode7 /* var listnode7: Array[Object] */;
+val* var14 /* : Array[Object] */;
+val* var_listnode15 /* var listnode15: Array[Object] */;
+val* var15 /* : Array[Object] */;
+val* var_listnode17 /* var listnode17: Array[Object] */;
+val* var_pdocnode2 /* var pdocnode2: nullable Object */;
+short int var16 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
+short int var23 /* : Bool */;
+int cltype24;
+int idtype25;
+val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
+short int var26 /* : Bool */;
+int cltype27;
+int idtype28;
+val* var29 /* : Array[Object] */;
+val* var_listnode12 /* var listnode12: Array[Object] */;
+val* var_listnode11 /* var listnode11: nullable Object */;
+short int var30 /* : Bool */;
+int cltype31;
+int idtype32;
+val* var33 /* : Array[Object] */;
+val* var34 /* : AAnnotations */;
+val* var35 /* : null */;
+val* var36 /* : null */;
+val* var37 /* : null */;
+val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
+val* var_listnode16 /* var listnode16: nullable Object */;
+short int var38 /* : Bool */;
+int cltype39;
+int idtype40;
+val* var41 /* : Array[Object] */;
+val* var_tkwendnode18 /* var tkwendnode18: nullable Object */;
+short int var42 /* : Bool */;
+int cltype43;
+int idtype44;
+val* var45 /* : AStdClassdef */;
+val* var46 /* : null */;
+val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
+long var47 /* : Int */;
+long var48 /* : 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_nodearraylist12 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist11 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist10 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist9 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist8 = var5;
+var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist7 = var6;
+var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist6 = var7;
+var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var8;
+var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var9;
+var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var10;
+var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var11;
+var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var12;
+var13 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
+var_listnode7 = var13;
+var14 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
+var_listnode15 = var14;
+var15 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
+var_listnode17 = var15;
+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) {
+var16 = 1;
+} else {
+if(cltype >= var_pdocnode2->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pdocnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10421);
+show_backtrace(1);
+}
+var_tkwredefnode3 = var_nodearraylist2;
+/* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
+cltype18 = type_nullable_parser_nodes__TKwredef.color;
+idtype19 = type_nullable_parser_nodes__TKwredef.id;
+if(var_tkwredefnode3 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_tkwredefnode3->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
+}
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10423);
+show_backtrace(1);
+}
+var_pvisibilitynode4 = var_nodearraylist3;
+/* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
+cltype21 = type_nullable_parser_nodes__AVisibility.color;
+idtype22 = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode4 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_pvisibilitynode4->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
+}
+}
+if (!var20) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10425);
+show_backtrace(1);
+}
+var_pclasskindnode5 = var_nodearraylist4;
+/* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
+cltype24 = type_nullable_parser_nodes__AClasskind.color;
+idtype25 = type_nullable_parser_nodes__AClasskind.id;
+if(var_pclasskindnode5 == NULL) {
+var23 = 1;
+} else {
+if(cltype24 >= var_pclasskindnode5->type->table_size) {
+var23 = 0;
+} else {
+var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
+}
+}
+if (!var23) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10427);
+show_backtrace(1);
+}
+var_tclassidnode6 = var_nodearraylist8;
+/* <var_tclassidnode6:nullable Object> isa nullable TClassid */
+cltype27 = type_nullable_parser_nodes__TClassid.color;
+idtype28 = type_nullable_parser_nodes__TClassid.id;
+if(var_tclassidnode6 == NULL) {
+var26 = 1;
+} else {
+if(cltype27 >= var_tclassidnode6->type->table_size) {
+var26 = 0;
+} else {
+var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
+}
+}
+if (!var26) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10429);
+show_backtrace(1);
+}
+var29 = NEW_array__Array(&type_array__Arraykernel__Object);
+((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
+var_listnode12 = var29;
+var_listnode11 = var_nodearraylist9;
+/* <var_listnode11:nullable Object> isa Array[Object] */
+cltype31 = type_array__Arraykernel__Object.color;
+idtype32 = type_array__Arraykernel__Object.id;
+if(var_listnode11 == NULL) {
+var30 = 0;
+} else {
+if(cltype31 >= var_listnode11->type->table_size) {
+var30 = 0;
+} else {
+var30 = var_listnode11->type->type_table[cltype31] == idtype32;
+}
+}
+if (!var30) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10432);
+show_backtrace(1);
+}
+var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction223>*/;
+var_listnode12 = var33;
+var34 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
+var35 = NULL;
+var36 = NULL;
+var37 = NULL;
+((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode12, var37) /* init_aannotations on <var34:AAnnotations>*/;
+var_pannotationsnode8 = var34;
+var_listnode16 = var_nodearraylist10;
+/* <var_listnode16:nullable Object> isa Array[Object] */
+cltype39 = type_array__Arraykernel__Object.color;
+idtype40 = type_array__Arraykernel__Object.id;
+if(var_listnode16 == NULL) {
+var38 = 0;
+} else {
+if(cltype39 >= var_listnode16->type->table_size) {
+var38 = 0;
+} else {
+var38 = var_listnode16->type->type_table[cltype39] == idtype40;
+}
+}
+if (!var38) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10441);
+show_backtrace(1);
+}
+var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction223>*/;
+var_listnode17 = var41;
+var_tkwendnode18 = var_nodearraylist12;
+/* <var_tkwendnode18:nullable Object> isa nullable TKwend */
+cltype43 = type_nullable_parser_nodes__TKwend.color;
+idtype44 = type_nullable_parser_nodes__TKwend.id;
+if(var_tkwendnode18 == NULL) {
+var42 = 1;
+} else {
+if(cltype43 >= var_tkwendnode18->type->table_size) {
+var42 = 0;
+} else {
+var42 = var_tkwendnode18->type->type_table[cltype43] == idtype44;
+}
+}
+if (!var42) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10444);
+show_backtrace(1);
+}
+var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
+var46 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var46, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var45:AStdClassdef>*/;
+var_pclassdefnode1 = var45;
+var_node_list = var_pclassdefnode1;
+var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction223> */
+var48 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var47) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var48, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction223#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction223__action(val* self, val* p0) {
+parser__ReduceAction223__action(self, p0);
+RET_LABEL:;
+}