model_utils: collect mmodules in mproject and mgroups
[nit.git] / c_src / parser_prod.sep.5.c
index a0cfb51..d47b0a7 100644 (file)
@@ -1,679 +1,4 @@
 #include "parser_prod.sep.0.h"
-/* method parser_prod#AModuleName#replace_child for (self: AModuleName, ANode, nullable ANode) */
-void parser_prod__AModuleName__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : nullable TQuad */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var5 /* : null */;
-val* var6 /* : Range[Int] */;
-long var7 /* : Int */;
-val* var8 /* : ANodes[TId] */;
-long var9 /* : Int */;
-val* var10 /* : Discrete */;
-val* var11 /* : Discrete */;
-val* var12 /* : Iterator[nullable Object] */;
-short int var13 /* : Bool */;
-val* var14 /* : nullable Object */;
-long var_i /* var i: Int */;
-long var15 /* : Int */;
-val* var16 /* : ANodes[TId] */;
-val* var17 /* : nullable Object */;
-short int var18 /* : Bool */;
-val* var19 /* : null */;
-short int var20 /* : Bool */;
-short int var21 /* : Bool */;
-int cltype22;
-int idtype23;
-val* var24 /* : ANodes[TId] */;
-val* var25 /* : ANodes[TId] */;
-val* var26 /* : TId */;
-short int var27 /* : Bool */;
-val* var28 /* : null */;
-short int var29 /* : Bool */;
-short int var30 /* : Bool */;
-int cltype31;
-int idtype32;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
-if (var == NULL) {
-var1 = 0; /* <var_old_child:ANode> cannot be null */
-} else {
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TQuad>*/;
-}
-if (var1){
-var2 = NULL;
-if (var_new_child == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TQuad */
-cltype = type_parser_nodes__TQuad.color;
-idtype = type_parser_nodes__TQuad.id;
-if(cltype >= var_new_child->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_new_child->type->type_table[cltype] == idtype;
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10750);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_new_child; /* _n_quad on <self:AModuleName> */
-} else {
-var5 = NULL;
-self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var5; /* _n_quad on <self:AModuleName> */
-}
-goto RET_LABEL;
-} else {
-}
-var6 = NEW_range__Range(&type_range__Rangekernel__Int);
-var7 = 0;
-var8 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
-if (var8 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10757);
-exit(1);
-}
-var9 = ((long (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__length]))(var8) /* length on <var8:ANodes[TId]>*/;
-var10 = BOX_kernel__Int(var7); /* autobox from Int to Discrete */
-var11 = BOX_kernel__Int(var9); /* autobox from Int to Discrete */
-((void (*)(val*, val*, val*))(var6->class->vft[COLOR_range__Range__without_last]))(var6, var10, var11) /* without_last on <var6:Range[Int]>*/;
-CHECK_NEW_range__Range(var6);
-var12 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:Range[Int]>*/;
-for(;;) {
-var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on <var12:Iterator[nullable Object]>*/;
-if(!var13) break;
-var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on <var12:Iterator[nullable Object]>*/;
-var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */;
-var_i = var15;
-var16 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
-if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10758);
-exit(1);
-}
-var17 = ((val* (*)(val*, long))(var16->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var16, var_i) /* [] on <var16:ANodes[TId]>*/;
-var18 = ((short int (*)(val*, val*))(var17->class->vft[COLOR_kernel__Object___61d_61d]))(var17, var_old_child) /* == on <var17:nullable Object(TId)>*/;
-if (var18){
-var19 = NULL;
-if (var_new_child == NULL) {
-var20 = 0; /* is null */
-} else {
-var20 = 1; /* arg is null and recv is not */
-}
-if (var20){
-/* <var_new_child:nullable ANode(ANode)> isa TId */
-cltype22 = type_parser_nodes__TId.color;
-idtype23 = type_parser_nodes__TId.id;
-if(cltype22 >= var_new_child->type->table_size) {
-var21 = 0;
-} else {
-var21 = var_new_child->type->type_table[cltype22] == idtype23;
-}
-if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10760);
-exit(1);
-}
-var24 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
-if (var24 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10761);
-exit(1);
-}
-((void (*)(val*, long, val*))(var24->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var24, var_i, var_new_child) /* []= on <var24:ANodes[TId]>*/;
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(TId)>*/;
-} else {
-var25 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
-if (var25 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10764);
-exit(1);
-}
-((void (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var25, var_i) /* remove_at on <var25:ANodes[TId]>*/;
-}
-goto RET_LABEL;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on <var12:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var26 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
-if (var26 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 10769);
-exit(1);
-}
-var27 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___61d_61d]))(var26, var_old_child) /* == on <var26:TId>*/;
-if (var27){
-var28 = NULL;
-if (var_new_child == NULL) {
-var29 = 0; /* is null */
-} else {
-var29 = 1; /* arg is null and recv is not */
-}
-if (var29){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TId */
-cltype31 = type_parser_nodes__TId.color;
-idtype32 = type_parser_nodes__TId.id;
-if(cltype31 >= var_new_child->type->table_size) {
-var30 = 0;
-} else {
-var30 = var_new_child->type->type_table[cltype31] == idtype32;
-}
-if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10772);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_new_child; /* _n_id on <self:AModuleName> */
-} else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10775);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#replace_child for (self: Object, ANode, nullable ANode) */
-void VIRTUAL_parser_prod__AModuleName__replace_child(val* self, val* p0, val* p1) {
-parser_prod__AModuleName__replace_child(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#n_quad= for (self: AModuleName, nullable TQuad) */
-void parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
-val* var_node /* var node: nullable TQuad */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_node; /* _n_quad on <self:AModuleName> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TQuad(TQuad)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#n_quad= for (self: Object, nullable TQuad) */
-void VIRTUAL_parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
-parser_prod__AModuleName__n_quad_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#n_id= for (self: AModuleName, TId) */
-void parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
-val* var_node /* var node: TId */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_node; /* _n_id on <self:AModuleName> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#n_id= for (self: Object, TId) */
-void VIRTUAL_parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
-parser_prod__AModuleName__n_id_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#visit_all for (self: AModuleName, Visitor) */
-void parser_prod__AModuleName__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : nullable TQuad */;
-val* var1 /* : null */;
-short int var2 /* : Bool */;
-val* var3 /* : nullable TQuad */;
-val* var4 /* : ANodes[TId] */;
-val* var5 /* : Iterator[nullable Object] */;
-short int var6 /* : Bool */;
-val* var7 /* : nullable Object */;
-val* var_n /* var n: TId */;
-val* var8 /* : TId */;
-var_v = p0;
-var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
-var1 = NULL;
-if (var == NULL) {
-var2 = 0; /* is null */
-} else {
-var2 = 1; /* arg is null and recv is not */
-}
-if (var2){
-var3 = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10798);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
-} else {
-}
-var4 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10800);
-exit(1);
-}
-var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:ANodes[TId]>*/;
-for(;;) {
-var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
-if(!var6) break;
-var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
-var_n = var7;
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var8 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
-if (var8 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 10803);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AModuleName#visit_all for (self: Object, Visitor) */
-void VIRTUAL_parser_prod__AModuleName__visit_all(val* self, val* p0) {
-parser_prod__AModuleName__visit_all(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#empty_init for (self: AExternCalls) */
-void parser_prod__AExternCalls__empty_init(val* self) {
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#empty_init for (self: Object) */
-void VIRTUAL_parser_prod__AExternCalls__empty_init(val* self) {
-parser_prod__AExternCalls__empty_init(self);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#init_aexterncalls for (self: AExternCalls, nullable TKwimport, Collection[Object]) */
-void parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
-val* var_n_kwimport /* var n_kwimport: nullable TKwimport */;
-val* var_n_extern_calls /* var n_extern_calls: Collection[Object] */;
-val* var /* : Iterator[nullable Object] */;
-short int var1 /* : Bool */;
-val* var2 /* : nullable Object */;
-val* var_n /* var n: Object */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-val* var4 /* : ANodes[AExternCall] */;
-var_n_kwimport = p0;
-var_n_extern_calls = p1;
-((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternCalls__empty_init]))(self) /* empty_init on <self:AExternCalls>*/;
-if (var_n_kwimport == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10815);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_n_kwimport; /* _n_kwimport on <self:AExternCalls> */
-if (var_n_kwimport == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10816);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_kwimport->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwimport, self) /* parent= on <var_n_kwimport:nullable TKwimport>*/;
-}
-var = ((val* (*)(val*))(var_n_extern_calls->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_extern_calls) /* iterator on <var_n_extern_calls:Collection[Object]>*/;
-for(;;) {
-var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
-if(!var1) break;
-var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
-var_n = var2;
-/* <var_n:Object> isa AExternCall */
-cltype = type_parser_nodes__AExternCall.color;
-idtype = type_parser_nodes__AExternCall.id;
-if(cltype >= var_n->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_n->type->type_table[cltype] == idtype;
-}
-if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10818);
-exit(1);
-}
-var4 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10819);
-exit(1);
-}
-((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[AExternCall]>*/;
-((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AExternCall)>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#init_aexterncalls for (self: Object, nullable TKwimport, Collection[Object]) */
-void VIRTUAL_parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
-parser_prod__AExternCalls__init_aexterncalls(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#replace_child for (self: AExternCalls, ANode, nullable ANode) */
-void parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TKwimport */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var5 /* : Range[Int] */;
-long var6 /* : Int */;
-val* var7 /* : ANodes[AExternCall] */;
-long var8 /* : Int */;
-val* var9 /* : Discrete */;
-val* var10 /* : Discrete */;
-val* var11 /* : Iterator[nullable Object] */;
-short int var12 /* : Bool */;
-val* var13 /* : nullable Object */;
-long var_i /* var i: Int */;
-long var14 /* : Int */;
-val* var15 /* : ANodes[AExternCall] */;
-val* var16 /* : nullable Object */;
-short int var17 /* : Bool */;
-val* var18 /* : null */;
-short int var19 /* : Bool */;
-short int var20 /* : Bool */;
-int cltype21;
-int idtype22;
-val* var23 /* : ANodes[AExternCall] */;
-val* var24 /* : ANodes[AExternCall] */;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_prod.nit", 10826);
-exit(1);
-}
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwimport>*/;
-if (var1){
-var2 = NULL;
-if (var_new_child == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwimport */
-cltype = type_parser_nodes__TKwimport.color;
-idtype = type_parser_nodes__TKwimport.id;
-if(cltype >= var_new_child->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_new_child->type->type_table[cltype] == idtype;
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10829);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_new_child; /* _n_kwimport on <self:AExternCalls> */
-} else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10832);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-var5 = NEW_range__Range(&type_range__Rangekernel__Int);
-var6 = 0;
-var7 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var7 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10836);
-exit(1);
-}
-var8 = ((long (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__length]))(var7) /* length on <var7:ANodes[AExternCall]>*/;
-var9 = BOX_kernel__Int(var6); /* autobox from Int to Discrete */
-var10 = BOX_kernel__Int(var8); /* autobox from Int to Discrete */
-((void (*)(val*, val*, val*))(var5->class->vft[COLOR_range__Range__without_last]))(var5, var9, var10) /* without_last on <var5:Range[Int]>*/;
-CHECK_NEW_range__Range(var5);
-var11 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Range[Int]>*/;
-for(;;) {
-var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
-if(!var12) break;
-var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
-var14 = ((struct instance_kernel__Int*)var13)->value; /* autounbox from nullable Object to Int */;
-var_i = var14;
-var15 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var15 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10837);
-exit(1);
-}
-var16 = ((val* (*)(val*, long))(var15->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var15, var_i) /* [] on <var15:ANodes[AExternCall]>*/;
-var17 = ((short int (*)(val*, val*))(var16->class->vft[COLOR_kernel__Object___61d_61d]))(var16, var_old_child) /* == on <var16:nullable Object(AExternCall)>*/;
-if (var17){
-var18 = NULL;
-if (var_new_child == NULL) {
-var19 = 0; /* is null */
-} else {
-var19 = 1; /* arg is null and recv is not */
-}
-if (var19){
-/* <var_new_child:nullable ANode(ANode)> isa AExternCall */
-cltype21 = type_parser_nodes__AExternCall.color;
-idtype22 = type_parser_nodes__AExternCall.id;
-if(cltype21 >= var_new_child->type->table_size) {
-var20 = 0;
-} else {
-var20 = var_new_child->type->type_table[cltype21] == idtype22;
-}
-if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10839);
-exit(1);
-}
-var23 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var23 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10840);
-exit(1);
-}
-((void (*)(val*, long, val*))(var23->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var23, var_i, var_new_child) /* []= on <var23:ANodes[AExternCall]>*/;
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AExternCall)>*/;
-} else {
-var24 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var24 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10843);
-exit(1);
-}
-((void (*)(val*, long))(var24->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var24, var_i) /* remove_at on <var24:ANodes[AExternCall]>*/;
-}
-goto RET_LABEL;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#replace_child for (self: Object, ANode, nullable ANode) */
-void VIRTUAL_parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
-parser_prod__AExternCalls__replace_child(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#n_kwimport= for (self: AExternCalls, TKwimport) */
-void parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
-val* var_node /* var node: TKwimport */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_node; /* _n_kwimport on <self:AExternCalls> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwimport>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#n_kwimport= for (self: Object, TKwimport) */
-void VIRTUAL_parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
-parser_prod__AExternCalls__n_kwimport_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#visit_all for (self: AExternCalls, Visitor) */
-void parser_prod__AExternCalls__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TKwimport */;
-val* var1 /* : ANodes[AExternCall] */;
-val* var2 /* : Iterator[nullable Object] */;
-short int var3 /* : Bool */;
-val* var4 /* : nullable Object */;
-val* var_n /* var n: AExternCall */;
-var_v = p0;
-var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_prod.nit", 10859);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
-var1 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10860);
-exit(1);
-}
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:ANodes[AExternCall]>*/;
-for(;;) {
-var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
-if(!var3) break;
-var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
-var_n = var4;
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCalls#visit_all for (self: Object, Visitor) */
-void VIRTUAL_parser_prod__AExternCalls__visit_all(val* self, val* p0) {
-parser_prod__AExternCalls__visit_all(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#empty_init for (self: AExternCall) */
-void parser_prod__AExternCall__empty_init(val* self) {
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#empty_init for (self: Object) */
-void VIRTUAL_parser_prod__AExternCall__empty_init(val* self) {
-parser_prod__AExternCall__empty_init(self);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#init_aexterncall for (self: AExternCall) */
-void parser_prod__AExternCall__init_aexterncall(val* self) {
-((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternCall__empty_init]))(self) /* empty_init on <self:AExternCall>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#init_aexterncall for (self: Object) */
-void VIRTUAL_parser_prod__AExternCall__init_aexterncall(val* self) {
-parser_prod__AExternCall__init_aexterncall(self);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#replace_child for (self: AExternCall, ANode, nullable ANode) */
-void parser_prod__AExternCall__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-var_old_child = p0;
-var_new_child = p1;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#replace_child for (self: Object, ANode, nullable ANode) */
-void VIRTUAL_parser_prod__AExternCall__replace_child(val* self, val* p0, val* p1) {
-parser_prod__AExternCall__replace_child(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#visit_all for (self: AExternCall, Visitor) */
-void parser_prod__AExternCall__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-var_v = p0;
-RET_LABEL:;
-}
-/* method parser_prod#AExternCall#visit_all for (self: Object, Visitor) */
-void VIRTUAL_parser_prod__AExternCall__visit_all(val* self, val* p0) {
-parser_prod__AExternCall__visit_all(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ASuperExternCall#empty_init for (self: ASuperExternCall) */
-void parser_prod__ASuperExternCall__empty_init(val* self) {
-RET_LABEL:;
-}
-/* method parser_prod#ASuperExternCall#empty_init for (self: Object) */
-void VIRTUAL_parser_prod__ASuperExternCall__empty_init(val* self) {
-parser_prod__ASuperExternCall__empty_init(self);
-RET_LABEL:;
-}
-/* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: ASuperExternCall, nullable TKwsuper) */
-void parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
-val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
-var_n_kwsuper = p0;
-((void (*)(val*))(self->class->vft[COLOR_parser_prod__ASuperExternCall__empty_init]))(self) /* empty_init on <self:ASuperExternCall>*/;
-if (var_n_kwsuper == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10891);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperExternCall> */
-if (var_n_kwsuper == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10892);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_kwsuper->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwsuper, self) /* parent= on <var_n_kwsuper:nullable TKwsuper>*/;
-}
-RET_LABEL:;
-}
-/* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: Object, nullable TKwsuper) */
-void VIRTUAL_parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
-parser_prod__ASuperExternCall__init_asuperexterncall(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ASuperExternCall#replace_child for (self: ASuperExternCall, ANode, nullable ANode) */
-void parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TKwsuper */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_prod.nit", 10897);
-exit(1);
-}
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwsuper>*/;
-if (var1){
-var2 = NULL;
-if (var_new_child == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwsuper */
-cltype = type_parser_nodes__TKwsuper.color;
-idtype = type_parser_nodes__TKwsuper.id;
-if(cltype >= var_new_child->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_new_child->type->type_table[cltype] == idtype;
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10900);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_new_child; /* _n_kwsuper on <self:ASuperExternCall> */
-} else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10903);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-RET_LABEL:;
-}
 /* method parser_prod#ASuperExternCall#replace_child for (self: Object, ANode, nullable ANode) */
 void VIRTUAL_parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
 parser_prod__ASuperExternCall__replace_child(self, p0, p1);
@@ -699,8 +24,9 @@ val* var /* : TKwsuper */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_prod.nit", 10918);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwsuper");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10365);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -725,13 +51,15 @@ val* var_n_methid /* var n_methid: nullable AMethid */;
 var_n_methid = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALocalPropExternCall__empty_init]))(self) /* empty_init on <self:ALocalPropExternCall>*/;
 if (var_n_methid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10929);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10376);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:ALocalPropExternCall> */
 if (var_n_methid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10930);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10377);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_methid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_methid, self) /* parent= on <var_n_methid:nullable AMethid>*/;
 }
@@ -757,8 +85,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 10935);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10382);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AMethid>*/;
 if (var1){
@@ -779,13 +108,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10938);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10385);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_new_child; /* _n_methid on <self:ALocalPropExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10941);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10388);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -817,8 +148,9 @@ val* var /* : AMethid */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 10956);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10403);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -837,53 +169,57 @@ void VIRTUAL_parser_prod__AFullPropExternCall__empty_init(val* self) {
 parser_prod__AFullPropExternCall__empty_init(self);
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: AFullPropExternCall, nullable TClassid, nullable TQuad, nullable AMethid) */
+/* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: AFullPropExternCall, nullable AType, nullable TDot, nullable AMethid) */
 void parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
-val* var_n_classid /* var n_classid: nullable TClassid */;
-val* var_n_quad /* var n_quad: nullable TQuad */;
+val* var_n_type /* var n_type: nullable AType */;
+val* var_n_dot /* var n_dot: nullable TDot */;
 val* var_n_methid /* var n_methid: nullable AMethid */;
 val* var /* : null */;
 short int var1 /* : Bool */;
-var_n_classid = p0;
-var_n_quad = p1;
+var_n_type = p0;
+var_n_dot = p1;
 var_n_methid = p2;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AFullPropExternCall__empty_init]))(self) /* empty_init on <self:AFullPropExternCall>*/;
-if (var_n_classid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10969);
-exit(1);
+if (var_n_type == NULL) {
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10416);
+show_backtrace(1);
 }
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_n_classid; /* _n_classid on <self:AFullPropExternCall> */
-if (var_n_classid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10970);
-exit(1);
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AFullPropExternCall> */
+if (var_n_type == NULL) {
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10417);
+show_backtrace(1);
 } else {
-((void (*)(val*, val*))(var_n_classid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_classid, self) /* parent= on <var_n_classid:nullable TClassid>*/;
+((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
 }
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_n_quad; /* _n_quad on <self:AFullPropExternCall> */
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:AFullPropExternCall> */
 var = NULL;
-if (var_n_quad == NULL) {
+if (var_n_dot == NULL) {
 var1 = 0; /* is null */
 } else {
 var1 = 1; /* arg is null and recv is not */
 }
 if (var1){
-((void (*)(val*, val*))(var_n_quad->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_quad, self) /* parent= on <var_n_quad:nullable TQuad(TQuad)>*/;
+((void (*)(val*, val*))(var_n_dot->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_dot, self) /* parent= on <var_n_dot:nullable TDot(TDot)>*/;
 } else {
 }
 if (var_n_methid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10975);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10422);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:AFullPropExternCall> */
 if (var_n_methid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10976);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10423);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_methid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_methid, self) /* parent= on <var_n_methid:nullable AMethid>*/;
 }
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: Object, nullable TClassid, nullable TQuad, nullable AMethid) */
+/* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: Object, nullable AType, nullable TDot, nullable AMethid) */
 void VIRTUAL_parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
 parser_prod__AFullPropExternCall__init_afullpropexterncall(self, p0, p1, p2);
 RET_LABEL:;
@@ -892,14 +228,14 @@ RET_LABEL:;
 void parser_prod__AFullPropExternCall__replace_child(val* self, val* p0, val* p1) {
 val* var_old_child /* var old_child: ANode */;
 val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TClassid */;
+val* var /* : AType */;
 short int var1 /* : Bool */;
 val* var2 /* : null */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
 int cltype;
 int idtype;
-val* var5 /* : nullable TQuad */;
+val* var5 /* : nullable TDot */;
 short int var6 /* : Bool */;
 val* var7 /* : null */;
 short int var8 /* : Bool */;
@@ -916,12 +252,13 @@ int cltype18;
 int idtype19;
 var_old_child = p0;
 var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val; /* _n_classid on <self:AFullPropExternCall> */
+var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 10981);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10428);
+show_backtrace(1);
 }
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TClassid>*/;
+var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
 var2 = NULL;
 if (var_new_child == NULL) {
@@ -931,31 +268,33 @@ var3 = 1; /* arg is null and recv is not */
 }
 if (var3){
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TClassid */
-cltype = type_parser_nodes__TClassid.color;
-idtype = type_parser_nodes__TClassid.id;
+/* <var_new_child:nullable ANode(ANode)> isa AType */
+cltype = type_parser_nodes__AType.color;
+idtype = type_parser_nodes__AType.id;
 if(cltype >= var_new_child->type->table_size) {
 var4 = 0;
 } else {
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10984);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10431);
+show_backtrace(1);
 }
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_new_child; /* _n_classid on <self:AFullPropExternCall> */
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = var_new_child; /* _n_type on <self:AFullPropExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10987);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10434);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
-var5 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
+var5 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
 if (var5 == NULL) {
 var6 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable TQuad>*/;
+var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable TDot>*/;
 }
 if (var6){
 var7 = NULL;
@@ -966,30 +305,32 @@ var8 = 1; /* arg is null and recv is not */
 }
 if (var8){
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TQuad */
-cltype10 = type_parser_nodes__TQuad.color;
-idtype11 = type_parser_nodes__TQuad.id;
+/* <var_new_child:nullable ANode(ANode)> isa TDot */
+cltype10 = type_parser_nodes__TDot.color;
+idtype11 = type_parser_nodes__TDot.id;
 if(cltype10 >= var_new_child->type->table_size) {
 var9 = 0;
 } else {
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10994);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10441);
+show_backtrace(1);
 }
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_new_child; /* _n_quad on <self:AFullPropExternCall> */
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var_new_child; /* _n_dot on <self:AFullPropExternCall> */
 } else {
 var12 = NULL;
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var12; /* _n_quad on <self:AFullPropExternCall> */
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var12; /* _n_dot on <self:AFullPropExternCall> */
 }
 goto RET_LABEL;
 } else {
 }
 var13 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
 if (var13 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 11001);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10448);
+show_backtrace(1);
 }
 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:AMethid>*/;
 if (var14){
@@ -1010,13 +351,15 @@ var17 = 0;
 var17 = var_new_child->type->type_table[cltype18] == idtype19;
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11004);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10451);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_new_child; /* _n_methid on <self:AFullPropExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11007);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10454);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -1028,26 +371,26 @@ void VIRTUAL_parser_prod__AFullPropExternCall__replace_child(val* self, val* p0,
 parser_prod__AFullPropExternCall__replace_child(self, p0, p1);
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#n_classid= for (self: AFullPropExternCall, TClassid) */
-void parser_prod__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
-val* var_node /* var node: TClassid */;
+/* method parser_prod#AFullPropExternCall#n_type= for (self: AFullPropExternCall, AType) */
+void parser_prod__AFullPropExternCall__n_type_61d(val* self, val* p0) {
+val* var_node /* var node: AType */;
 var_node = p0;
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_node; /* _n_classid on <self:AFullPropExternCall> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = var_node; /* _n_type on <self:AFullPropExternCall> */
+((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#n_classid= for (self: Object, TClassid) */
-void VIRTUAL_parser_prod__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
-parser_prod__AFullPropExternCall__n_classid_61d(self, p0);
+/* method parser_prod#AFullPropExternCall#n_type= for (self: Object, AType) */
+void VIRTUAL_parser_prod__AFullPropExternCall__n_type_61d(val* self, val* p0) {
+parser_prod__AFullPropExternCall__n_type_61d(self, p0);
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#n_quad= for (self: AFullPropExternCall, nullable TQuad) */
-void parser_prod__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
-val* var_node /* var node: nullable TQuad */;
+/* method parser_prod#AFullPropExternCall#n_dot= for (self: AFullPropExternCall, nullable TDot) */
+void parser_prod__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TDot */;
 val* var /* : null */;
 short int var1 /* : Bool */;
 var_node = p0;
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_node; /* _n_quad on <self:AFullPropExternCall> */
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var_node; /* _n_dot on <self:AFullPropExternCall> */
 var = NULL;
 if (var_node == NULL) {
 var1 = 0; /* is null */
@@ -1055,14 +398,14 @@ var1 = 0; /* is null */
 var1 = 1; /* arg is null and recv is not */
 }
 if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TQuad(TQuad)>*/;
+((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TDot(TDot)>*/;
 } else {
 }
 RET_LABEL:;
 }
-/* method parser_prod#AFullPropExternCall#n_quad= for (self: Object, nullable TQuad) */
-void VIRTUAL_parser_prod__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
-parser_prod__AFullPropExternCall__n_quad_61d(self, p0);
+/* method parser_prod#AFullPropExternCall#n_dot= for (self: Object, nullable TDot) */
+void VIRTUAL_parser_prod__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
+parser_prod__AFullPropExternCall__n_dot_61d(self, p0);
 RET_LABEL:;
 }
 /* method parser_prod#AFullPropExternCall#n_methid= for (self: AFullPropExternCall, AMethid) */
@@ -1081,20 +424,21 @@ RET_LABEL:;
 /* method parser_prod#AFullPropExternCall#visit_all for (self: AFullPropExternCall, Visitor) */
 void parser_prod__AFullPropExternCall__visit_all(val* self, val* p0) {
 val* var_v /* var v: Visitor */;
-val* var /* : TClassid */;
-val* var1 /* : nullable TQuad */;
+val* var /* : AType */;
+val* var1 /* : nullable TDot */;
 val* var2 /* : null */;
 short int var3 /* : Bool */;
-val* var4 /* : nullable TQuad */;
+val* var4 /* : nullable TDot */;
 val* var5 /* : AMethid */;
 var_v = p0;
-var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val; /* _n_classid on <self:AFullPropExternCall> */
+var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11034);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10481);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
-var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
+var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
 var2 = NULL;
 if (var1 == NULL) {
 var3 = 0; /* is null */
@@ -1102,18 +446,20 @@ var3 = 0; /* is null */
 var3 = 1; /* arg is null and recv is not */
 }
 if (var3){
-var4 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
+var4 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11036);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10483);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
 } else {
 }
 var5 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 11038);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10485);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -1132,25 +478,27 @@ void VIRTUAL_parser_prod__AInitPropExternCall__empty_init(val* self) {
 parser_prod__AInitPropExternCall__empty_init(self);
 RET_LABEL:;
 }
-/* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: AInitPropExternCall, nullable TClassid) */
+/* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: AInitPropExternCall, nullable AType) */
 void parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
-val* var_n_classid /* var n_classid: nullable TClassid */;
-var_n_classid = p0;
+val* var_n_type /* var n_type: nullable AType */;
+var_n_type = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AInitPropExternCall__empty_init]))(self) /* empty_init on <self:AInitPropExternCall>*/;
-if (var_n_classid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11049);
-exit(1);
+if (var_n_type == NULL) {
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10496);
+show_backtrace(1);
 }
-self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_n_classid; /* _n_classid on <self:AInitPropExternCall> */
-if (var_n_classid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11050);
-exit(1);
+self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AInitPropExternCall> */
+if (var_n_type == NULL) {
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10497);
+show_backtrace(1);
 } else {
-((void (*)(val*, val*))(var_n_classid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_classid, self) /* parent= on <var_n_classid:nullable TClassid>*/;
+((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
 }
 RET_LABEL:;
 }
-/* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: Object, nullable TClassid) */
+/* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: Object, nullable AType) */
 void VIRTUAL_parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
 parser_prod__AInitPropExternCall__init_ainitpropexterncall(self, p0);
 RET_LABEL:;
@@ -1159,7 +507,7 @@ RET_LABEL:;
 void parser_prod__AInitPropExternCall__replace_child(val* self, val* p0, val* p1) {
 val* var_old_child /* var old_child: ANode */;
 val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TClassid */;
+val* var /* : AType */;
 short int var1 /* : Bool */;
 val* var2 /* : null */;
 short int var3 /* : Bool */;
@@ -1168,12 +516,13 @@ int cltype;
 int idtype;
 var_old_child = p0;
 var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val; /* _n_classid on <self:AInitPropExternCall> */
+var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11055);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10502);
+show_backtrace(1);
 }
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TClassid>*/;
+var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
 var2 = NULL;
 if (var_new_child == NULL) {
@@ -1183,22 +532,24 @@ var3 = 1; /* arg is null and recv is not */
 }
 if (var3){
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TClassid */
-cltype = type_parser_nodes__TClassid.color;
-idtype = type_parser_nodes__TClassid.id;
+/* <var_new_child:nullable ANode(ANode)> isa AType */
+cltype = type_parser_nodes__AType.color;
+idtype = type_parser_nodes__AType.id;
 if(cltype >= var_new_child->type->table_size) {
 var4 = 0;
 } else {
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11058);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10505);
+show_backtrace(1);
 }
-self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_new_child; /* _n_classid on <self:AInitPropExternCall> */
+self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = var_new_child; /* _n_type on <self:AInitPropExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11061);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10508);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -1210,28 +561,29 @@ void VIRTUAL_parser_prod__AInitPropExternCall__replace_child(val* self, val* p0,
 parser_prod__AInitPropExternCall__replace_child(self, p0, p1);
 RET_LABEL:;
 }
-/* method parser_prod#AInitPropExternCall#n_classid= for (self: AInitPropExternCall, TClassid) */
-void parser_prod__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
-val* var_node /* var node: TClassid */;
+/* method parser_prod#AInitPropExternCall#n_type= for (self: AInitPropExternCall, AType) */
+void parser_prod__AInitPropExternCall__n_type_61d(val* self, val* p0) {
+val* var_node /* var node: AType */;
 var_node = p0;
-self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_node; /* _n_classid on <self:AInitPropExternCall> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
+self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = var_node; /* _n_type on <self:AInitPropExternCall> */
+((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
 RET_LABEL:;
 }
-/* method parser_prod#AInitPropExternCall#n_classid= for (self: Object, TClassid) */
-void VIRTUAL_parser_prod__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
-parser_prod__AInitPropExternCall__n_classid_61d(self, p0);
+/* method parser_prod#AInitPropExternCall#n_type= for (self: Object, AType) */
+void VIRTUAL_parser_prod__AInitPropExternCall__n_type_61d(val* self, val* p0) {
+parser_prod__AInitPropExternCall__n_type_61d(self, p0);
 RET_LABEL:;
 }
 /* method parser_prod#AInitPropExternCall#visit_all for (self: AInitPropExternCall, Visitor) */
 void parser_prod__AInitPropExternCall__visit_all(val* self, val* p0) {
 val* var_v /* var v: Visitor */;
-val* var /* : TClassid */;
+val* var /* : AType */;
 var_v = p0;
-var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val; /* _n_classid on <self:AInitPropExternCall> */
+var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11076);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10523);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -1250,53 +602,74 @@ void VIRTUAL_parser_prod__ACastAsExternCall__empty_init(val* self) {
 parser_prod__ACastAsExternCall__empty_init(self);
 RET_LABEL:;
 }
-/* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: ACastAsExternCall, nullable AType, nullable TKwas, nullable AType) */
-void parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2) {
+/* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: ACastAsExternCall, nullable AType, nullable TDot, nullable TKwas, nullable AType) */
+void parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
 val* var_n_from_type /* var n_from_type: nullable AType */;
+val* var_n_dot /* var n_dot: nullable TDot */;
 val* var_n_kwas /* var n_kwas: nullable TKwas */;
 val* var_n_to_type /* var n_to_type: nullable AType */;
+val* var /* : null */;
+short int var1 /* : Bool */;
 var_n_from_type = p0;
-var_n_kwas = p1;
-var_n_to_type = p2;
+var_n_dot = p1;
+var_n_kwas = p2;
+var_n_to_type = p3;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ACastAsExternCall__empty_init]))(self) /* empty_init on <self:ACastAsExternCall>*/;
 if (var_n_from_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11089);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10537);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_n_from_type; /* _n_from_type on <self:ACastAsExternCall> */
 if (var_n_from_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11090);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10538);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_from_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_from_type, self) /* parent= on <var_n_from_type:nullable AType>*/;
 }
+self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:ACastAsExternCall> */
+var = NULL;
+if (var_n_dot == NULL) {
+var1 = 0; /* is null */
+} else {
+var1 = 1; /* arg is null and recv is not */
+}
+if (var1){
+((void (*)(val*, val*))(var_n_dot->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_dot, self) /* parent= on <var_n_dot:nullable TDot(TDot)>*/;
+} else {
+}
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11091);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10543);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:ACastAsExternCall> */
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11092);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10544);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
 }
 if (var_n_to_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11093);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10545);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_n_to_type; /* _n_to_type on <self:ACastAsExternCall> */
 if (var_n_to_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11094);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10546);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_to_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_to_type, self) /* parent= on <var_n_to_type:nullable AType>*/;
 }
 RET_LABEL:;
 }
-/* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: Object, nullable AType, nullable TKwas, nullable AType) */
-void VIRTUAL_parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2) {
-parser_prod__ACastAsExternCall__init_acastasexterncall(self, p0, p1, p2);
+/* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: Object, nullable AType, nullable TDot, nullable TKwas, nullable AType) */
+void VIRTUAL_parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
+parser_prod__ACastAsExternCall__init_acastasexterncall(self, p0, p1, p2, p3);
 RET_LABEL:;
 }
 /* method parser_prod#ACastAsExternCall#replace_child for (self: ACastAsExternCall, ANode, nullable ANode) */
@@ -1310,26 +683,35 @@ short int var3 /* : Bool */;
 short int var4 /* : Bool */;
 int cltype;
 int idtype;
-val* var5 /* : TKwas */;
+val* var5 /* : nullable TDot */;
 short int var6 /* : Bool */;
 val* var7 /* : null */;
 short int var8 /* : Bool */;
 short int var9 /* : Bool */;
 int cltype10;
 int idtype11;
-val* var12 /* : AType */;
-short int var13 /* : Bool */;
-val* var14 /* : null */;
-short int var15 /* : Bool */;
+val* var12 /* : null */;
+val* var13 /* : TKwas */;
+short int var14 /* : Bool */;
+val* var15 /* : null */;
 short int var16 /* : Bool */;
-int cltype17;
-int idtype18;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var20 /* : AType */;
+short int var21 /* : Bool */;
+val* var22 /* : null */;
+short int var23 /* : Bool */;
+short int var24 /* : Bool */;
+int cltype25;
+int idtype26;
 var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_from_type", "src/parser/parser_prod.nit", 11099);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_from_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10551);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
@@ -1350,23 +732,25 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11102);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10554);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_new_child; /* _n_from_type on <self:ACastAsExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11105);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10557);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
-var5 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
+var5 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11109);
-exit(1);
+var6 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable TDot>*/;
 }
-var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
 if (var6){
 var7 = NULL;
 if (var_new_child == NULL) {
@@ -1376,57 +760,99 @@ var8 = 1; /* arg is null and recv is not */
 }
 if (var8){
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwas */
-cltype10 = type_parser_nodes__TKwas.color;
-idtype11 = type_parser_nodes__TKwas.id;
+/* <var_new_child:nullable ANode(ANode)> isa TDot */
+cltype10 = type_parser_nodes__TDot.color;
+idtype11 = type_parser_nodes__TDot.id;
 if(cltype10 >= var_new_child->type->table_size) {
 var9 = 0;
 } else {
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11112);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10564);
+show_backtrace(1);
+}
+self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = var_new_child; /* _n_dot on <self:ACastAsExternCall> */
+} else {
+var12 = NULL;
+self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = var12; /* _n_dot on <self:ACastAsExternCall> */
+}
+goto RET_LABEL;
+} else {
+}
+var13 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
+if (var13 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10571);
+show_backtrace(1);
+}
+var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:TKwas>*/;
+if (var14){
+var15 = NULL;
+if (var_new_child == NULL) {
+var16 = 0; /* is null */
+} else {
+var16 = 1; /* arg is null and recv is not */
+}
+if (var16){
+((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
+/* <var_new_child:nullable ANode(ANode)> isa TKwas */
+cltype18 = type_parser_nodes__TKwas.color;
+idtype19 = type_parser_nodes__TKwas.id;
+if(cltype18 >= var_new_child->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_new_child->type->type_table[cltype18] == idtype19;
+}
+if (!var17) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10574);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:ACastAsExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11115);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10577);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
-var12 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
-if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_to_type", "src/parser/parser_prod.nit", 11119);
-exit(1);
+var20 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
+if (var20 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_to_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10581);
+show_backtrace(1);
 }
-var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:AType>*/;
-if (var13){
-var14 = NULL;
+var21 = ((short int (*)(val*, val*))(var20->class->vft[COLOR_kernel__Object___61d_61d]))(var20, var_old_child) /* == on <var20:AType>*/;
+if (var21){
+var22 = NULL;
 if (var_new_child == NULL) {
-var15 = 0; /* is null */
+var23 = 0; /* is null */
 } else {
-var15 = 1; /* arg is null and recv is not */
+var23 = 1; /* arg is null and recv is not */
 }
-if (var15){
+if (var23){
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
 /* <var_new_child:nullable ANode(ANode)> isa AType */
-cltype17 = type_parser_nodes__AType.color;
-idtype18 = type_parser_nodes__AType.id;
-if(cltype17 >= var_new_child->type->table_size) {
-var16 = 0;
+cltype25 = type_parser_nodes__AType.color;
+idtype26 = type_parser_nodes__AType.id;
+if(cltype25 >= var_new_child->type->table_size) {
+var24 = 0;
 } else {
-var16 = var_new_child->type->type_table[cltype17] == idtype18;
+var24 = var_new_child->type->type_table[cltype25] == idtype26;
 }
-if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11122);
-exit(1);
+if (!var24) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10584);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_new_child; /* _n_to_type on <self:ACastAsExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11125);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10587);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -1451,6 +877,30 @@ void VIRTUAL_parser_prod__ACastAsExternCall__n_from_type_61d(val* self, val* p0)
 parser_prod__ACastAsExternCall__n_from_type_61d(self, p0);
 RET_LABEL:;
 }
+/* method parser_prod#ACastAsExternCall#n_dot= for (self: ACastAsExternCall, nullable TDot) */
+void parser_prod__ACastAsExternCall__n_dot_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TDot */;
+val* var /* : null */;
+short int var1 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = var_node; /* _n_dot on <self:ACastAsExternCall> */
+var = NULL;
+if (var_node == NULL) {
+var1 = 0; /* is null */
+} else {
+var1 = 1; /* arg is null and recv is not */
+}
+if (var1){
+((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TDot(TDot)>*/;
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#ACastAsExternCall#n_dot= for (self: Object, nullable TDot) */
+void VIRTUAL_parser_prod__ACastAsExternCall__n_dot_61d(val* self, val* p0) {
+parser_prod__ACastAsExternCall__n_dot_61d(self, p0);
+RET_LABEL:;
+}
 /* method parser_prod#ACastAsExternCall#n_kwas= for (self: ACastAsExternCall, TKwas) */
 void parser_prod__ACastAsExternCall__n_kwas_61d(val* self, val* p0) {
 val* var_node /* var node: TKwas */;
@@ -1481,27 +931,51 @@ RET_LABEL:;
 void parser_prod__ACastAsExternCall__visit_all(val* self, val* p0) {
 val* var_v /* var v: Visitor */;
 val* var /* : AType */;
-val* var1 /* : TKwas */;
-val* var2 /* : AType */;
+val* var1 /* : nullable TDot */;
+val* var2 /* : null */;
+short int var3 /* : Bool */;
+val* var4 /* : nullable TDot */;
+val* var5 /* : TKwas */;
+val* var6 /* : AType */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_from_type", "src/parser/parser_prod.nit", 11150);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_from_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10619);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
-var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
+var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
+var2 = NULL;
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11151);
-exit(1);
+var3 = 0; /* is null */
+} else {
+var3 = 1; /* arg is null and recv is not */
 }
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
-var2 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_to_type", "src/parser/parser_prod.nit", 11152);
-exit(1);
+if (var3){
+var4 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
+if (var4 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10621);
+show_backtrace(1);
 }
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
+((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
+} else {
+}
+var5 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
+if (var5 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10623);
+show_backtrace(1);
+}
+((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
+var6 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
+if (var6 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_to_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10624);
+show_backtrace(1);
+}
+((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var6) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
 }
 /* method parser_prod#ACastAsExternCall#visit_all for (self: Object, Visitor) */
@@ -1528,35 +1002,41 @@ var_n_kwas = p1;
 var_n_kwnullable = p2;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAsNullableExternCall__empty_init]))(self) /* empty_init on <self:AAsNullableExternCall>*/;
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11165);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10637);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNullableExternCall> */
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11166);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10638);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
 }
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11167);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10639);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNullableExternCall> */
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11168);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10640);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
 }
 if (var_n_kwnullable == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11169);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10641);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNullableExternCall> */
 if (var_n_kwnullable == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11170);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10642);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwnullable->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnullable, self) /* parent= on <var_n_kwnullable:nullable TKwnullable>*/;
 }
@@ -1596,8 +1076,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11175);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10647);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
@@ -1618,21 +1099,24 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11178);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10650);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val = var_new_child; /* _n_type on <self:AAsNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11181);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10653);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var5 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11185);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10657);
+show_backtrace(1);
 }
 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
 if (var6){
@@ -1653,21 +1137,24 @@ var9 = 0;
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11188);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10660);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:AAsNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11191);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10663);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var12 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
 if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11195);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10667);
+show_backtrace(1);
 }
 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TKwnullable>*/;
 if (var13){
@@ -1688,13 +1175,15 @@ var16 = 0;
 var16 = var_new_child->type->type_table[cltype17] == idtype18;
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11198);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10670);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AAsNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11201);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10673);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -1754,20 +1243,23 @@ val* var2 /* : TKwnullable */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11226);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10698);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 var1 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11227);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10699);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
 var2 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
 if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11228);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10700);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -1798,46 +1290,54 @@ var_n_kwnot = p2;
 var_n_kwnullable = p3;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAsNotNullableExternCall__empty_init]))(self) /* empty_init on <self:AAsNotNullableExternCall>*/;
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11242);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10714);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNotNullableExternCall> */
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11243);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10715);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
 }
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11244);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10716);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotNullableExternCall> */
 if (var_n_kwas == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11245);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10717);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
 }
 if (var_n_kwnot == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11246);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10718);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotNullableExternCall> */
 if (var_n_kwnot == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11247);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10719);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwnot->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnot, self) /* parent= on <var_n_kwnot:nullable TKwnot>*/;
 }
 if (var_n_kwnullable == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11248);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10720);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
 if (var_n_kwnullable == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11249);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10721);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwnullable->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnullable, self) /* parent= on <var_n_kwnullable:nullable TKwnullable>*/;
 }
@@ -1884,8 +1384,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11254);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10726);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
@@ -1906,21 +1407,24 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11257);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10729);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val = var_new_child; /* _n_type on <self:AAsNotNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11260);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10732);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var5 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11264);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10736);
+show_backtrace(1);
 }
 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
 if (var6){
@@ -1941,21 +1445,24 @@ var9 = 0;
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11267);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10739);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:AAsNotNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11270);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10742);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var12 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
 if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_prod.nit", 11274);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnot");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10746);
+show_backtrace(1);
 }
 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TKwnot>*/;
 if (var13){
@@ -1976,21 +1483,24 @@ var16 = 0;
 var16 = var_new_child->type->type_table[cltype17] == idtype18;
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11277);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10749);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_new_child; /* _n_kwnot on <self:AAsNotNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11280);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10752);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var19 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
 if (var19 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11284);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10756);
+show_backtrace(1);
 }
 var20 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var_old_child) /* == on <var19:TKwnullable>*/;
 if (var20){
@@ -2011,13 +1521,15 @@ var23 = 0;
 var23 = var_new_child->type->type_table[cltype24] == idtype25;
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11287);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10759);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11290);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10762);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -2091,26 +1603,30 @@ val* var3 /* : TKwnullable */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11320);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10792);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 var1 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11321);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10793);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
 var2 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
 if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_prod.nit", 11322);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnot");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10794);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
 var3 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11323);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10795);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -2137,24 +1653,28 @@ var_n_kwin = p0;
 var_n_string = p1;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AInLanguage__empty_init]))(self) /* empty_init on <self:AInLanguage>*/;
 if (var_n_kwin == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11335);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10807);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val = var_n_kwin; /* _n_kwin on <self:AInLanguage> */
 if (var_n_kwin == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11336);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10808);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_kwin->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwin, self) /* parent= on <var_n_kwin:nullable TKwin>*/;
 }
 if (var_n_string == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11337);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10809);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val = var_n_string; /* _n_string on <self:AInLanguage> */
 if (var_n_string == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11338);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10810);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_string->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_string, self) /* parent= on <var_n_string:nullable TString>*/;
 }
@@ -2187,8 +1707,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwin", "src/parser/parser_prod.nit", 11343);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwin");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10815);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwin>*/;
 if (var1){
@@ -2209,21 +1730,24 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11346);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10818);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val = var_new_child; /* _n_kwin on <self:AInLanguage> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11349);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10821);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
 }
 var5 = self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_string", "src/parser/parser_prod.nit", 11353);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_string");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10825);
+show_backtrace(1);
 }
 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TString>*/;
 if (var6){
@@ -2244,13 +1768,15 @@ var9 = 0;
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11356);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10828);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val = var_new_child; /* _n_string on <self:AInLanguage> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11359);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10831);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -2296,14 +1822,16 @@ val* var1 /* : TString */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwin", "src/parser/parser_prod.nit", 11379);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwin");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10851);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 var1 = self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_string", "src/parser/parser_prod.nit", 11380);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_string");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10852);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -2343,13 +1871,15 @@ if (var1){
 } else {
 }
 if (var_n_extern_code_segment == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11396);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10868);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_n_extern_code_segment; /* _n_extern_code_segment on <self:AExternCodeBlock> */
 if (var_n_extern_code_segment == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11397);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10869);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_extern_code_segment->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_extern_code_segment, self) /* parent= on <var_n_extern_code_segment:nullable TExternCodeSegment>*/;
 }
@@ -2405,8 +1935,9 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11405);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10877);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val = var_new_child; /* _n_in_language on <self:AExternCodeBlock> */
 } else {
@@ -2418,8 +1949,9 @@ goto RET_LABEL;
 }
 var6 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
 if (var6 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_code_segment", "src/parser/parser_prod.nit", 11412);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10884);
+show_backtrace(1);
 }
 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:TExternCodeSegment>*/;
 if (var7){
@@ -2440,13 +1972,15 @@ var10 = 0;
 var10 = var_new_child->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11415);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10887);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_new_child; /* _n_extern_code_segment on <self:AExternCodeBlock> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11418);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10890);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -2514,16 +2048,18 @@ var2 = 1; /* arg is null and recv is not */
 if (var2){
 var3 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11441);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10913);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
 } else {
 }
 var4 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_code_segment", "src/parser/parser_prod.nit", 11443);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10915);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -2574,13 +2110,15 @@ var3 = 0;
 var3 = var_n->type->type_table[cltype] == idtype;
 }
 if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11456);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10928);
+show_backtrace(1);
 }
 var4 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11457);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10929);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[TId]>*/;
 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(TId)>*/;
@@ -2645,14 +2183,14 @@ var = NEW_range__Range(&type_range__Rangekernel__Int);
 var1 = 0;
 var2 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11468);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10940);
+show_backtrace(1);
 }
 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[TId]>*/;
 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
-CHECK_NEW_range__Range(var);
 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
 for(;;) {
 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
@@ -2662,8 +2200,9 @@ var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable O
 var_i = var9;
 var10 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var10 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11469);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10941);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[TId]>*/;
 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(TId)>*/;
@@ -2684,21 +2223,24 @@ var15 = 0;
 var15 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11471);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10943);
+show_backtrace(1);
 }
 var16 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11472);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10944);
+show_backtrace(1);
 }
 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[TId]>*/;
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(TId)>*/;
 } else {
 var17 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var17 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11475);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10947);
+show_backtrace(1);
 }
 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[TId]>*/;
 }
@@ -2733,8 +2275,9 @@ var22 = 0;
 var22 = var_new_child->type->type_table[cltype23] == idtype24;
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11483);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10955);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AQualified___n_classid].val = var_new_child; /* _n_classid on <self:AQualified> */
 } else {
@@ -2790,8 +2333,9 @@ val* var7 /* : nullable TClassid */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11503);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10975);
+show_backtrace(1);
 }
 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[TId]>*/;
 for(;;) {
@@ -2814,8 +2358,9 @@ var6 = 1; /* arg is null and recv is not */
 if (var6){
 var7 = self->attrs[COLOR_parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
 if (var7 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11507);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10979);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
 } else {
@@ -2864,13 +2409,15 @@ var3 = 0;
 var3 = var_n->type->type_table[cltype] == idtype;
 }
 if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11520);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10992);
+show_backtrace(1);
 }
 var4 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11521);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 10993);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[TComment]>*/;
 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(TComment)>*/;
@@ -2916,14 +2463,14 @@ var = NEW_range__Range(&type_range__Rangekernel__Int);
 var1 = 0;
 var2 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11528);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11000);
+show_backtrace(1);
 }
 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[TComment]>*/;
 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
-CHECK_NEW_range__Range(var);
 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
 for(;;) {
 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
@@ -2933,8 +2480,9 @@ var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable O
 var_i = var9;
 var10 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var10 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11529);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11001);
+show_backtrace(1);
 }
 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[TComment]>*/;
 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(TComment)>*/;
@@ -2955,21 +2503,24 @@ var15 = 0;
 var15 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11531);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11003);
+show_backtrace(1);
 }
 var16 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11532);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11004);
+show_backtrace(1);
 }
 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[TComment]>*/;
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(TComment)>*/;
 } else {
 var17 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var17 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11535);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11007);
+show_backtrace(1);
 }
 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[TComment]>*/;
 }
@@ -2998,8 +2549,9 @@ val* var_n /* var n: TComment */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11546);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_comment");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11018);
+show_backtrace(1);
 }
 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[TComment]>*/;
 for(;;) {
@@ -3090,13 +2642,15 @@ var7 = 0;
 var7 = var_n->type->type_table[cltype] == idtype;
 }
 if (!var7) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11571);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11043);
+show_backtrace(1);
 }
 var8 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var8 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11572);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11044);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var8, var_n) /* add on <var8:ANodes[AAnnotation]>*/;
 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AAnnotation)>*/;
@@ -3197,8 +2751,9 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11586);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11058);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val = var_new_child; /* _n_at on <self:AAnnotations> */
 } else {
@@ -3232,8 +2787,9 @@ var10 = 0;
 var10 = var_new_child->type->type_table[cltype11] == idtype12;
 }
 if (!var10) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11596);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11068);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val = var_new_child; /* _n_opar on <self:AAnnotations> */
 } else {
@@ -3247,14 +2803,14 @@ var14 = NEW_range__Range(&type_range__Rangekernel__Int);
 var15 = 0;
 var16 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11603);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11075);
+show_backtrace(1);
 }
 var17 = ((long (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__length]))(var16) /* length on <var16:ANodes[AAnnotation]>*/;
 var18 = BOX_kernel__Int(var15); /* autobox from Int to Discrete */
 var19 = BOX_kernel__Int(var17); /* autobox from Int to Discrete */
 ((void (*)(val*, val*, val*))(var14->class->vft[COLOR_range__Range__without_last]))(var14, var18, var19) /* without_last on <var14:Range[Int]>*/;
-CHECK_NEW_range__Range(var14);
 var20 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__iterator]))(var14) /* iterator on <var14:Range[Int]>*/;
 for(;;) {
 var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
@@ -3264,8 +2820,9 @@ var23 = ((struct instance_kernel__Int*)var22)->value; /* autounbox from nullable
 var_i = var23;
 var24 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var24 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11604);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11076);
+show_backtrace(1);
 }
 var25 = ((val* (*)(val*, long))(var24->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var24, var_i) /* [] on <var24:ANodes[AAnnotation]>*/;
 var26 = ((short int (*)(val*, val*))(var25->class->vft[COLOR_kernel__Object___61d_61d]))(var25, var_old_child) /* == on <var25:nullable Object(AAnnotation)>*/;
@@ -3286,21 +2843,24 @@ var29 = 0;
 var29 = var_new_child->type->type_table[cltype30] == idtype31;
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11606);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11078);
+show_backtrace(1);
 }
 var32 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var32 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11607);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11079);
+show_backtrace(1);
 }
 ((void (*)(val*, long, val*))(var32->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var32, var_i, var_new_child) /* []= on <var32:ANodes[AAnnotation]>*/;
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AAnnotation)>*/;
 } else {
 var33 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var33 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11610);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11082);
+show_backtrace(1);
 }
 ((void (*)(val*, long))(var33->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var33, var_i) /* remove_at on <var33:ANodes[AAnnotation]>*/;
 }
@@ -3335,8 +2895,9 @@ var38 = 0;
 var38 = var_new_child->type->type_table[cltype39] == idtype40;
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11618);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11090);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val = var_new_child; /* _n_cpar on <self:AAnnotations> */
 } else {
@@ -3456,8 +3017,9 @@ var2 = 1; /* arg is null and recv is not */
 if (var2){
 var3 = self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11653);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11125);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
 } else {
@@ -3472,16 +3034,18 @@ var6 = 1; /* arg is null and recv is not */
 if (var6){
 var7 = self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
 if (var7 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11656);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11128);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
 } else {
 }
 var8 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
 if (var8 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11658);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11130);
+show_backtrace(1);
 }
 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__iterator]))(var8) /* iterator on <var8:ANodes[AAnnotation]>*/;
 for(;;) {
@@ -3504,8 +3068,9 @@ var14 = 1; /* arg is null and recv is not */
 if (var14){
 var15 = self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
 if (var15 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11662);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11134);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var15) /* enter_visit on <var_v:Visitor>*/;
 } else {
@@ -3554,13 +3119,15 @@ var_n_cpar = p3;
 var_n_annotations = p4;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAnnotation__empty_init]))(self) /* empty_init on <self:AAnnotation>*/;
 if (var_n_atid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11678);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11150);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val = var_n_atid; /* _n_atid on <self:AAnnotation> */
 if (var_n_atid == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11679);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11151);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_atid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_atid, self) /* parent= on <var_n_atid:nullable AAtid>*/;
 }
@@ -3590,13 +3157,15 @@ var5 = 0;
 var5 = var_n->type->type_table[cltype] == idtype;
 }
 if (!var5) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11685);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11157);
+show_backtrace(1);
 }
 var6 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var6 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11686);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11158);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_n) /* add on <var6:ANodes[AAtArg]>*/;
 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AAtArg)>*/;
@@ -3693,8 +3262,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_atid", "src/parser/parser_prod.nit", 11701);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_atid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11173);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AAtid>*/;
 if (var1){
@@ -3715,13 +3285,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11704);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11176);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val = var_new_child; /* _n_atid on <self:AAnnotation> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11707);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11179);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -3750,8 +3322,9 @@ var9 = 0;
 var9 = var_new_child->type->type_table[cltype10] == idtype11;
 }
 if (!var9) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11714);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11186);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val = var_new_child; /* _n_opar on <self:AAnnotation> */
 } else {
@@ -3765,14 +3338,14 @@ var13 = NEW_range__Range(&type_range__Rangekernel__Int);
 var14 = 0;
 var15 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var15 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11721);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11193);
+show_backtrace(1);
 }
 var16 = ((long (*)(val*))(var15->class->vft[COLOR_abstract_collection__Collection__length]))(var15) /* length on <var15:ANodes[AAtArg]>*/;
 var17 = BOX_kernel__Int(var14); /* autobox from Int to Discrete */
 var18 = BOX_kernel__Int(var16); /* autobox from Int to Discrete */
 ((void (*)(val*, val*, val*))(var13->class->vft[COLOR_range__Range__without_last]))(var13, var17, var18) /* without_last on <var13:Range[Int]>*/;
-CHECK_NEW_range__Range(var13);
 var19 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:Range[Int]>*/;
 for(;;) {
 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
@@ -3782,8 +3355,9 @@ var22 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable
 var_i = var22;
 var23 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var23 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11722);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11194);
+show_backtrace(1);
 }
 var24 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var_i) /* [] on <var23:ANodes[AAtArg]>*/;
 var25 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var_old_child) /* == on <var24:nullable Object(AAtArg)>*/;
@@ -3804,21 +3378,24 @@ var28 = 0;
 var28 = var_new_child->type->type_table[cltype29] == idtype30;
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11724);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11196);
+show_backtrace(1);
 }
 var31 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var31 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11725);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11197);
+show_backtrace(1);
 }
 ((void (*)(val*, long, val*))(var31->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var31, var_i, var_new_child) /* []= on <var31:ANodes[AAtArg]>*/;
 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AAtArg)>*/;
 } else {
 var32 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var32 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11728);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11200);
+show_backtrace(1);
 }
 ((void (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var32, var_i) /* remove_at on <var32:ANodes[AAtArg]>*/;
 }
@@ -3853,8 +3430,9 @@ var37 = 0;
 var37 = var_new_child->type->type_table[cltype38] == idtype39;
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11736);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11208);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val = var_new_child; /* _n_cpar on <self:AAnnotation> */
 } else {
@@ -3888,8 +3466,9 @@ var45 = 0;
 var45 = var_new_child->type->type_table[cltype46] == idtype47;
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11746);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11218);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AAnnotation> */
 } else {
@@ -4015,8 +3594,9 @@ val* var16 /* : nullable AAnnotations */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_atid", "src/parser/parser_prod.nit", 11785);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_atid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11257);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 var1 = self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
@@ -4029,16 +3609,18 @@ var3 = 1; /* arg is null and recv is not */
 if (var3){
 var4 = self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11787);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11259);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
 } else {
 }
 var5 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
 if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11789);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11261);
+show_backtrace(1);
 }
 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:ANodes[AAtArg]>*/;
 for(;;) {
@@ -4061,8 +3643,9 @@ var11 = 1; /* arg is null and recv is not */
 if (var11){
 var12 = self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
 if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11793);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11265);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
 } else {
@@ -4077,8 +3660,9 @@ var15 = 1; /* arg is null and recv is not */
 if (var15){
 var16 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
 if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11796);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11268);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var16) /* enter_visit on <var_v:Visitor>*/;
 } else {
@@ -4105,13 +3689,15 @@ val* var_n_type /* var n_type: nullable AType */;
 var_n_type = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ATypeAtArg__empty_init]))(self) /* empty_init on <self:ATypeAtArg>*/;
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11808);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11280);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val = var_n_type; /* _n_type on <self:ATypeAtArg> */
 if (var_n_type == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11809);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11281);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
 }
@@ -4137,8 +3723,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val; /* _n_type on <self:ATypeAtArg> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11814);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11286);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
 if (var1){
@@ -4159,13 +3746,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11817);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11289);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val = var_new_child; /* _n_type on <self:ATypeAtArg> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11820);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11292);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4197,8 +3786,9 @@ val* var /* : AType */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val; /* _n_type on <self:ATypeAtArg> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11835);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11307);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4223,13 +3813,15 @@ val* var_n_expr /* var n_expr: nullable AExpr */;
 var_n_expr = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExprAtArg__empty_init]))(self) /* empty_init on <self:AExprAtArg>*/;
 if (var_n_expr == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11846);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11318);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val = var_n_expr; /* _n_expr on <self:AExprAtArg> */
 if (var_n_expr == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11847);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11319);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr>*/;
 }
@@ -4255,8 +3847,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val; /* _n_expr on <self:AExprAtArg> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_prod.nit", 11852);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11324);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AExpr>*/;
 if (var1){
@@ -4277,13 +3870,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11855);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11327);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val = var_new_child; /* _n_expr on <self:AExprAtArg> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11858);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11330);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4315,8 +3910,9 @@ val* var /* : AExpr */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val; /* _n_expr on <self:AExprAtArg> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_prod.nit", 11873);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11345);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4341,13 +3937,15 @@ val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
 var_n_annotations = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAtAtArg__empty_init]))(self) /* empty_init on <self:AAtAtArg>*/;
 if (var_n_annotations == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11884);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11356);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAtAtArg> */
 if (var_n_annotations == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11885);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11357);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_annotations->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_annotations, self) /* parent= on <var_n_annotations:nullable AAnnotations>*/;
 }
@@ -4395,13 +3993,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11893);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11365);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AAtAtArg> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11896);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11368);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4419,8 +4019,9 @@ val* var_node /* var node: nullable AAnnotations */;
 var_node = p0;
 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAtAtArg> */
 if (var_node == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11905);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11377);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations>*/;
 }
@@ -4460,13 +4061,15 @@ val* var_n_id /* var n_id: nullable TId */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AIdAtid__empty_init]))(self) /* empty_init on <self:AIdAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11922);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11394);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AIdAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11923);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11395);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
 }
@@ -4492,8 +4095,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11928);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11400);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -4514,13 +4118,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11931);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11403);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AIdAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11934);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11406);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4552,8 +4158,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11949);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11421);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4578,13 +4185,15 @@ val* var_n_id /* var n_id: nullable TKwextern */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwexternAtid__empty_init]))(self) /* empty_init on <self:AKwexternAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11960);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11432);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwexternAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11961);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11433);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwextern>*/;
 }
@@ -4610,8 +4219,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11966);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11438);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -4632,13 +4242,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11969);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11441);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwexternAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11972);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11444);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4670,8 +4282,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11987);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11459);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4696,13 +4309,15 @@ val* var_n_id /* var n_id: nullable TKwintern */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwinternAtid__empty_init]))(self) /* empty_init on <self:AKwinternAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11998);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11470);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwinternAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11999);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11471);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwintern>*/;
 }
@@ -4728,8 +4343,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwinternAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12004);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11476);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -4750,13 +4366,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12007);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11479);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwinternAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12010);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11482);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4788,8 +4406,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwinternAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12025);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11497);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4814,13 +4433,15 @@ val* var_n_id /* var n_id: nullable TKwreadable */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwreadableAtid__empty_init]))(self) /* empty_init on <self:AKwreadableAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12036);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11508);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwreadableAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12037);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11509);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwreadable>*/;
 }
@@ -4846,8 +4467,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwreadableAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12042);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11514);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -4868,13 +4490,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12045);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11517);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwreadableAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12048);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11520);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -4906,8 +4530,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwreadableAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12063);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11535);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -4932,13 +4557,15 @@ val* var_n_id /* var n_id: nullable TKwwritable */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwwritableAtid__empty_init]))(self) /* empty_init on <self:AKwwritableAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12074);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11546);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwwritableAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12075);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11547);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwwritable>*/;
 }
@@ -4964,8 +4591,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwwritableAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12080);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11552);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -4986,13 +4614,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12083);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11555);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwwritableAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12086);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11558);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -5024,8 +4654,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwwritableAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12101);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11573);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -5050,13 +4681,15 @@ val* var_n_id /* var n_id: nullable TKwimport */;
 var_n_id = p0;
 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwimportAtid__empty_init]))(self) /* empty_init on <self:AKwimportAtid>*/;
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12112);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11584);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwimportAtid> */
 if (var_n_id == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12113);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11585);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwimport>*/;
 }
@@ -5082,8 +4715,9 @@ var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwimportAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12118);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11590);
+show_backtrace(1);
 }
 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
 if (var1){
@@ -5104,13 +4738,15 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12121);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11593);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwimportAtid> */
 } else {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12124);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Aborted");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11596);
+show_backtrace(1);
 }
 goto RET_LABEL;
 } else {
@@ -5142,8 +4778,9 @@ val* var /* : Token */;
 var_v = p0;
 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwimportAtid> */
 if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12139);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11611);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;
@@ -5192,8 +4829,9 @@ var4 = 0;
 var4 = var_new_child->type->type_table[cltype] == idtype;
 }
 if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12150);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11622);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__Start___n_base].val = var_new_child; /* _n_base on <self:Start> */
 }
@@ -5228,16 +4866,18 @@ var2 = 1; /* arg is null and recv is not */
 if (var2){
 var3 = self->attrs[COLOR_parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12161);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11633);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
 } else {
 }
 var4 = self->attrs[COLOR_parser_nodes__Start___n_eof].val; /* _n_eof on <self:Start> */
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_eof", "src/parser/parser_prod.nit", 12163);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_eof");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 11635);
+show_backtrace(1);
 }
 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
 RET_LABEL:;