c_src: update for new ffi syntax
[nit.git] / c_src / parser_nodes.sep.1.c
index 2a9e58f..0e68884 100644 (file)
@@ -5,8 +5,9 @@ val* var /* : Location */;
 val* var1 /* : nullable Location */;
 var1 = self->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <self:ANode> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 27);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Cast failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 27);
+show_backtrace(1);
 }
 var = var1;
 goto RET_LABEL;
@@ -125,7 +126,6 @@ var25 = NEW_array__NativeArray(var24, &type_array__NativeArraykernel__Object);
 ((struct instance_array__NativeArray*)var25)->values[5] = (val*) var12;
 ((struct instance_array__NativeArray*)var25)->values[6] = (val*) var22;
 ((void (*)(val*, val*, long))(var23->class->vft[COLOR_array__Array__with_native]))(var23, var25, var24) /* with_native on <var23:Array[Object]>*/;
-CHECK_NEW_array__Array(var23);
 }
 var26 = ((val* (*)(val*))(var23->class->vft[COLOR_string__Object__to_s]))(var23) /* to_s on <var23:Array[Object]>*/;
 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var26) /* print on <self:ANode>*/;
@@ -175,8 +175,11 @@ RET_LABEL:;
 }
 /* method parser_nodes#ANode#replace_child for (self: ANode, ANode, nullable ANode) */
 void parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser_nodes.nit", 44);
-exit(1);
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "replace_child", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 44);
+show_backtrace(1);
 RET_LABEL:;
 }
 /* method parser_nodes#ANode#replace_child for (self: Object, ANode, nullable ANode) */
@@ -200,14 +203,16 @@ var2 = 0; /* is null */
 var2 = 1; /* arg is null and recv is not */
 }
 if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_nodes.nit", 54);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 54);
+show_backtrace(1);
 }
 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on <self:ANode>*/;
 var4 = NULL;
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 55);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 55);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_nodes__ANode__replace_child]))(var3, self, var4) /* replace_child on <var3:nullable ANode>*/;
 }
@@ -237,13 +242,15 @@ var2 = 0; /* is null */
 var2 = 1; /* arg is null and recv is not */
 }
 if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_nodes.nit", 65);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 65);
+show_backtrace(1);
 }
 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on <self:ANode>*/;
 if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 66);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 66);
+show_backtrace(1);
 } else {
 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_nodes__ANode__replace_child]))(var3, self, var_node) /* replace_child on <var3:nullable ANode>*/;
 }
@@ -258,8 +265,11 @@ RET_LABEL:;
 }
 /* method parser_nodes#ANode#visit_all for (self: ANode, Visitor) */
 void parser_nodes__ANode__visit_all(val* self, val* p0) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser_nodes.nit", 70);
-exit(1);
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "visit_all", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 70);
+show_backtrace(1);
 RET_LABEL:;
 }
 /* method parser_nodes#ANode#visit_all for (self: Object, Visitor) */
@@ -273,8 +283,9 @@ val* var /* : ANode */;
 val* var1 /* : ANode */;
 var1 = self->attrs[COLOR_parser_nodes__ANodes___64dparent].val; /* @parent on <self:ANodes[ANode]> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @parent", "src/parser/parser_nodes.nit", 79);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @parent");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 79);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -305,8 +316,9 @@ val* var /* : Array[ANode] */;
 val* var1 /* : Array[ANode] */;
 var1 = self->attrs[COLOR_parser_nodes__ANodes___64ditems].val; /* @items on <self:ANodes[ANode]> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @items", "src/parser/parser_nodes.nit", 80);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @items");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 80);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -327,6 +339,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 /* Covariant cast for argument 0 (items) <p0:Array[ANode]> isa Array[ANodes#0] */
 /* <p0:Array[ANode]> isa Array[ANodes#0] */
 type_struct = self->type->resolution_table->types[COLOR_array__Arrayparser_nodes__ANodes_FT0];
@@ -338,8 +351,10 @@ var = 0;
 var = p0->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 80);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[ANodes#0]", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 80);
+show_backtrace(1);
 }
 self->attrs[COLOR_parser_nodes__ANodes___64ditems].val = p0; /* @items on <self:ANodes[ANode]> */
 RET_LABEL:;
@@ -418,6 +433,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 val* var_e /* var e: ANode */;
 val* var1 /* : Array[ANode] */;
 /* Covariant cast for argument 0 (e) <p0:ANode> isa Sequence#0 */
@@ -431,8 +447,10 @@ var = 0;
 var = p0->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 84);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 84);
+show_backtrace(1);
 }
 var_e = p0;
 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANodes__hook_add]))(self, var_e) /* hook_add on <self:ANodes[ANode]>*/;
@@ -475,6 +493,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 val* var_e /* var e: ANode */;
 val* var1 /* : Array[ANode] */;
 /* Covariant cast for argument 0 (e) <p0:ANode> isa Sequence#0 */
@@ -488,8 +507,10 @@ var = 0;
 var = p0->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 95);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 95);
+show_backtrace(1);
 }
 var_e = p0;
 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANodes__hook_add]))(self, var_e) /* hook_add on <self:ANodes[ANode]>*/;
@@ -533,6 +554,7 @@ short int var1 /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 val* var_e /* var e: ANode */;
 val* var2 /* : Array[ANode] */;
 short int var3 /* : Bool */;
@@ -547,8 +569,10 @@ var1 = 0;
 var1 = p0->type->type_table[cltype] == idtype;
 }
 if (!var1) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 106);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 106);
+show_backtrace(1);
 }
 var_e = p0;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANodes__items]))(self) /* items on <self:ANodes[ANode]>*/;
@@ -596,6 +620,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 long var_index /* var index: Int */;
 val* var_e /* var e: ANode */;
 val* var1 /* : nullable Object */;
@@ -611,8 +636,10 @@ var = 0;
 var = p1->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 114);
-exit(1);
+var_class_name = p1 == NULL ? "null" : p1->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 114);
+show_backtrace(1);
 }
 var_index = p0;
 var_e = p1;
@@ -653,6 +680,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 val* var_e /* var e: ANode */;
 val* var1 /* : ANode */;
 /* Covariant cast for argument 0 (e) <p0:ANode> isa ANodes#0 */
@@ -666,8 +694,10 @@ var = 0;
 var = p0->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 125);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "ANodes#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 125);
+show_backtrace(1);
 }
 var_e = p0;
 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANodes__parent]))(self) /* parent on <self:ANodes[ANode]>*/;
@@ -685,6 +715,7 @@ short int var /* : Bool */;
 int cltype;
 int idtype;
 const struct type* type_struct;
+const char* var_class_name;
 val* var_e /* var e: ANode */;
 val* var1 /* : nullable ANode */;
 val* var2 /* : ANode */;
@@ -701,8 +732,10 @@ var = 0;
 var = p0->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_nodes.nit", 130);
-exit(1);
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "ANodes#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 130);
+show_backtrace(1);
 }
 var_e = p0;
 var1 = ((val* (*)(val*))(var_e->class->vft[COLOR_parser_nodes__ANode__parent]))(var_e) /* parent on <var_e:ANode>*/;
@@ -713,8 +746,9 @@ var3 = 0; /* <var2:ANode> cannot be null */
 var3 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var2) /* == on <var1:nullable ANode>*/;
 }
 if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_nodes.nit", 132);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 132);
+show_backtrace(1);
 }
 var4 = NULL;
 ((void (*)(val*, val*))(var_e->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_e, var4) /* parent= on <var_e:ANode>*/;
@@ -738,8 +772,11 @@ RET_LABEL:;
 /* method parser_nodes#Token#text for (self: Token): String */
 val* parser_nodes__Token__text(val* self) {
 val* var /* : String */;
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser_nodes.nit", 142);
-exit(1);
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "text", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 142);
+show_backtrace(1);
 RET_LABEL:;
 return var;
 }
@@ -754,8 +791,11 @@ return var;
 }
 /* method parser_nodes#Token#text= for (self: Token, String) */
 void parser_nodes__Token__text_61d(val* self, val* p0) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser_nodes.nit", 144);
-exit(1);
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "text=", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 144);
+show_backtrace(1);
 RET_LABEL:;
 }
 /* method parser_nodes#Token#text= for (self: Object, String) */
@@ -840,7 +880,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -974,8 +1013,9 @@ var = 0;
 var = var_n->type->type_table[cltype] == idtype;
 }
 if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_nodes.nit", 175);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 175);
+show_backtrace(1);
 }
 var1 = var_n->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_n:ANode(Prod)> */
 var2 = NULL;
@@ -1008,8 +1048,11 @@ RET_LABEL:;
 }
 /* method parser_nodes#Visitor#visit for (self: Visitor, ANode) */
 void parser_nodes__Visitor__visit(val* self, val* p0) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser_nodes.nit", 182);
-exit(1);
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "visit", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 182);
+show_backtrace(1);
 RET_LABEL:;
 }
 /* method parser_nodes#Visitor#visit for (self: Object, ANode) */
@@ -1156,7 +1199,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -1816,7 +1858,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2096,7 +2137,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2167,7 +2207,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2238,7 +2277,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2309,7 +2347,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2450,7 +2487,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2521,7 +2557,6 @@ val* var13 /* : String */;
 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
 var2 = 3;
 ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
 var_ = var1;
 if (varonce) {
 var3 = varonce;
@@ -2686,8 +2721,9 @@ val* var /* : ANodes[AImport] */;
 val* var1 /* : ANodes[AImport] */;
 var1 = self->attrs[COLOR_parser_nodes__AModule___n_imports].val; /* _n_imports on <self:AModule> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_imports", "src/parser/parser_nodes.nit", 580);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_imports");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 580);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2708,8 +2744,9 @@ val* var /* : ANodes[AExternCodeBlock] */;
 val* var1 /* : ANodes[AExternCodeBlock] */;
 var1 = self->attrs[COLOR_parser_nodes__AModule___n_extern_code_blocks].val; /* _n_extern_code_blocks on <self:AModule> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_code_blocks", "src/parser/parser_nodes.nit", 581);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 581);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2730,8 +2767,9 @@ val* var /* : ANodes[AClassdef] */;
 val* var1 /* : ANodes[AClassdef] */;
 var1 = self->attrs[COLOR_parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classdefs", "src/parser/parser_nodes.nit", 582);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_classdefs");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 582);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2790,8 +2828,9 @@ val* var /* : TKwmodule */;
 val* var1 /* : TKwmodule */;
 var1 = self->attrs[COLOR_parser_nodes__AModuledecl___n_kwmodule].val; /* _n_kwmodule on <self:AModuledecl> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwmodule", "src/parser/parser_nodes.nit", 589);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwmodule");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 589);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2822,8 +2861,9 @@ val* var /* : AModuleName */;
 val* var1 /* : AModuleName */;
 var1 = self->attrs[COLOR_parser_nodes__AModuledecl___n_name].val; /* _n_name on <self:AModuledecl> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_name", "src/parser/parser_nodes.nit", 590);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_name");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 590);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2874,8 +2914,9 @@ val* var /* : AVisibility */;
 val* var1 /* : AVisibility */;
 var1 = self->attrs[COLOR_parser_nodes__AStdImport___n_visibility].val; /* _n_visibility on <self:AStdImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_visibility", "src/parser/parser_nodes.nit", 601);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 601);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2906,8 +2947,9 @@ val* var /* : TKwimport */;
 val* var1 /* : TKwimport */;
 var1 = self->attrs[COLOR_parser_nodes__AStdImport___n_kwimport].val; /* _n_kwimport on <self:AStdImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_nodes.nit", 602);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwimport");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 602);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2938,8 +2980,9 @@ val* var /* : AModuleName */;
 val* var1 /* : AModuleName */;
 var1 = self->attrs[COLOR_parser_nodes__AStdImport___n_name].val; /* _n_name on <self:AStdImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_name", "src/parser/parser_nodes.nit", 603);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_name");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 603);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -2980,8 +3023,9 @@ val* var /* : AVisibility */;
 val* var1 /* : AVisibility */;
 var1 = self->attrs[COLOR_parser_nodes__ANoImport___n_visibility].val; /* _n_visibility on <self:ANoImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_visibility", "src/parser/parser_nodes.nit", 609);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 609);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3012,8 +3056,9 @@ val* var /* : TKwimport */;
 val* var1 /* : TKwimport */;
 var1 = self->attrs[COLOR_parser_nodes__ANoImport___n_kwimport].val; /* _n_kwimport on <self:ANoImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_nodes.nit", 610);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwimport");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 610);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3044,8 +3089,9 @@ val* var /* : TKwend */;
 val* var1 /* : TKwend */;
 var1 = self->attrs[COLOR_parser_nodes__ANoImport___n_kwend].val; /* _n_kwend on <self:ANoImport> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwend", "src/parser/parser_nodes.nit", 611);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwend");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 611);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3106,8 +3152,9 @@ val* var /* : TKwprivate */;
 val* var1 /* : TKwprivate */;
 var1 = self->attrs[COLOR_parser_nodes__APrivateVisibility___n_kwprivate].val; /* _n_kwprivate on <self:APrivateVisibility> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwprivate", "src/parser/parser_nodes.nit", 628);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwprivate");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 628);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3148,8 +3195,9 @@ val* var /* : TKwprotected */;
 val* var1 /* : TKwprotected */;
 var1 = self->attrs[COLOR_parser_nodes__AProtectedVisibility___n_kwprotected].val; /* _n_kwprotected on <self:AProtectedVisibility> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwprotected", "src/parser/parser_nodes.nit", 632);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwprotected");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 632);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3190,8 +3238,9 @@ val* var /* : TKwintrude */;
 val* var1 /* : TKwintrude */;
 var1 = self->attrs[COLOR_parser_nodes__AIntrudeVisibility___n_kwintrude].val; /* _n_kwintrude on <self:AIntrudeVisibility> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwintrude", "src/parser/parser_nodes.nit", 636);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwintrude");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 636);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3232,8 +3281,9 @@ val* var /* : ANodes[APropdef] */;
 val* var1 /* : ANodes[APropdef] */;
 var1 = self->attrs[COLOR_parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_propdefs", "src/parser/parser_nodes.nit", 643);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_propdefs");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 643);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3320,8 +3370,9 @@ val* var /* : AVisibility */;
 val* var1 /* : AVisibility */;
 var1 = self->attrs[COLOR_parser_nodes__AStdClassdef___n_visibility].val; /* _n_visibility on <self:AStdClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_visibility", "src/parser/parser_nodes.nit", 651);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 651);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3352,8 +3403,9 @@ val* var /* : AClasskind */;
 val* var1 /* : AClasskind */;
 var1 = self->attrs[COLOR_parser_nodes__AStdClassdef___n_classkind].val; /* _n_classkind on <self:AStdClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classkind", "src/parser/parser_nodes.nit", 652);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_classkind");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 652);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3412,8 +3464,9 @@ val* var /* : ANodes[AFormaldef] */;
 val* var1 /* : ANodes[AFormaldef] */;
 var1 = self->attrs[COLOR_parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_formaldefs", "src/parser/parser_nodes.nit", 654);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_formaldefs");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 654);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3462,8 +3515,9 @@ val* var /* : ANodes[ASuperclass] */;
 val* var1 /* : ANodes[ASuperclass] */;
 var1 = self->attrs[COLOR_parser_nodes__AStdClassdef___n_superclasses].val; /* _n_superclasses on <self:AStdClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_superclasses", "src/parser/parser_nodes.nit", 656);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_superclasses");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 656);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3484,8 +3538,9 @@ val* var /* : TKwend */;
 val* var1 /* : TKwend */;
 var1 = self->attrs[COLOR_parser_nodes__AStdClassdef___n_kwend].val; /* _n_kwend on <self:AStdClassdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwend", "src/parser/parser_nodes.nit", 657);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwend");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 657);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3517,8 +3572,9 @@ val* var1 /* : nullable TClassid */;
 val* var2 /* : Location */;
 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AStdClassdef__n_id]))(self) /* n_id on <self:AStdClassdef>*/;
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 658);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 658);
+show_backtrace(1);
 } else {
 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_parser_nodes__ANode__location]))(var1) /* location on <var1:nullable TClassid>*/;
 }
@@ -3582,8 +3638,9 @@ val* var /* : TKwclass */;
 val* var1 /* : TKwclass */;
 var1 = self->attrs[COLOR_parser_nodes__AConcreteClasskind___n_kwclass].val; /* _n_kwclass on <self:AConcreteClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwclass", "src/parser/parser_nodes.nit", 677);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwclass");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 677);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3624,8 +3681,9 @@ val* var /* : TKwabstract */;
 val* var1 /* : TKwabstract */;
 var1 = self->attrs[COLOR_parser_nodes__AAbstractClasskind___n_kwabstract].val; /* _n_kwabstract on <self:AAbstractClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwabstract", "src/parser/parser_nodes.nit", 681);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabstract");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 681);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3656,8 +3714,9 @@ val* var /* : TKwclass */;
 val* var1 /* : TKwclass */;
 var1 = self->attrs[COLOR_parser_nodes__AAbstractClasskind___n_kwclass].val; /* _n_kwclass on <self:AAbstractClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwclass", "src/parser/parser_nodes.nit", 682);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwclass");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 682);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3698,8 +3757,9 @@ val* var /* : TKwinterface */;
 val* var1 /* : TKwinterface */;
 var1 = self->attrs[COLOR_parser_nodes__AInterfaceClasskind___n_kwinterface].val; /* _n_kwinterface on <self:AInterfaceClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwinterface", "src/parser/parser_nodes.nit", 686);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwinterface");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 686);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3740,8 +3800,9 @@ val* var /* : TKwenum */;
 val* var1 /* : TKwenum */;
 var1 = self->attrs[COLOR_parser_nodes__AEnumClasskind___n_kwenum].val; /* _n_kwenum on <self:AEnumClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwenum", "src/parser/parser_nodes.nit", 690);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwenum");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 690);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3782,8 +3843,9 @@ val* var /* : TKwextern */;
 val* var1 /* : TKwextern */;
 var1 = self->attrs[COLOR_parser_nodes__AExternClasskind___n_kwextern].val; /* _n_kwextern on <self:AExternClasskind> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwextern", "src/parser/parser_nodes.nit", 694);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwextern");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 694);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3852,8 +3914,9 @@ val* var /* : TClassid */;
 val* var1 /* : TClassid */;
 var1 = self->attrs[COLOR_parser_nodes__AFormaldef___n_id].val; /* _n_id on <self:AFormaldef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 701);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 701);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3922,8 +3985,9 @@ val* var /* : TKwsuper */;
 val* var1 /* : TKwsuper */;
 var1 = self->attrs[COLOR_parser_nodes__ASuperclass___n_kwsuper].val; /* _n_kwsuper on <self:ASuperclass> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_nodes.nit", 709);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwsuper");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 709);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -3954,8 +4018,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__ASuperclass___n_type].val; /* _n_type on <self:ASuperclass> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 710);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 710);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4062,8 +4127,9 @@ val* var /* : AVisibility */;
 val* var1 /* : AVisibility */;
 var1 = self->attrs[COLOR_parser_nodes__AAttrPropdef___n_visibility].val; /* _n_visibility on <self:AAttrPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_visibility", "src/parser/parser_nodes.nit", 724);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 724);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4094,8 +4160,9 @@ val* var /* : TKwvar */;
 val* var1 /* : TKwvar */;
 var1 = self->attrs[COLOR_parser_nodes__AAttrPropdef___n_kwvar].val; /* _n_kwvar on <self:AAttrPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwvar", "src/parser/parser_nodes.nit", 725);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 725);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4308,8 +4375,9 @@ var3 = 1; /* arg is null and recv is not */
 if (var3){
 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on <self:AAttrPropdef>*/;
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 741);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 741);
+show_backtrace(1);
 } else {
 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__ANode__location]))(var4) /* location on <var4:nullable TAttrid>*/;
 }
@@ -4318,8 +4386,9 @@ goto RET_LABEL;
 } else {
 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on <self:AAttrPropdef>*/;
 if (var6 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 741);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 741);
+show_backtrace(1);
 } else {
 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_parser_nodes__ANode__location]))(var6) /* location on <var6:nullable TId>*/;
 }
@@ -4479,8 +4548,9 @@ var3 = 1; /* arg is null and recv is not */
 if (var3){
 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_methid]))(self) /* n_methid on <self:AMethPropdef>*/;
 if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_nodes.nit", 755);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Reciever is null");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 755);
+show_backtrace(1);
 } else {
 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__ANode__location]))(var4) /* location on <var4:nullable AMethid>*/;
 }
@@ -4519,8 +4589,9 @@ val* var /* : TKwmeth */;
 val* var1 /* : TKwmeth */;
 var1 = self->attrs[COLOR_parser_nodes__ADeferredMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:ADeferredMethPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwmeth", "src/parser/parser_nodes.nit", 766);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwmeth");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 766);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4561,8 +4632,9 @@ val* var /* : TKwmeth */;
 val* var1 /* : TKwmeth */;
 var1 = self->attrs[COLOR_parser_nodes__AInternMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AInternMethPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwmeth", "src/parser/parser_nodes.nit", 772);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwmeth");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 772);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4697,8 +4769,9 @@ val* var /* : TKwmeth */;
 val* var1 /* : TKwmeth */;
 var1 = self->attrs[COLOR_parser_nodes__AExternMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AExternMethPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwmeth", "src/parser/parser_nodes.nit", 786);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwmeth");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 786);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4815,8 +4888,9 @@ val* var /* : TKwinit */;
 val* var1 /* : TKwinit */;
 var1 = self->attrs[COLOR_parser_nodes__AConcreteInitPropdef___n_kwinit].val; /* _n_kwinit on <self:AConcreteInitPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwinit", "src/parser/parser_nodes.nit", 805);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwinit");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 805);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4879,8 +4953,9 @@ val* var /* : TKwnew */;
 val* var1 /* : TKwnew */;
 var1 = self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val; /* _n_kwnew on <self:AExternInitPropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnew", "src/parser/parser_nodes.nit", 813);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnew");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 813);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4932,8 +5007,9 @@ val* var /* : TKwimport */;
 val* var1 /* : TKwimport */;
 var1 = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_nodes.nit", 824);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwimport");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 824);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -4964,8 +5040,9 @@ val* var /* : ANodes[AExternCall] */;
 val* var1 /* : ANodes[AExternCall] */;
 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_nodes.nit", 825);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_extern_calls");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 825);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5016,8 +5093,9 @@ val* var /* : AMethid */;
 val* var1 /* : AMethid */;
 var1 = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_nodes.nit", 835);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 835);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5052,64 +5130,65 @@ void VIRTUAL_parser_nodes__ALocalPropExternCall__init(val* self) {
 parser_nodes__ALocalPropExternCall__init(self);
 RET_LABEL:;
 }
-/* method parser_nodes#AFullPropExternCall#n_classid for (self: AFullPropExternCall): TClassid */
-val* parser_nodes__AFullPropExternCall__n_classid(val* self) {
-val* var /* : TClassid */;
-val* var1 /* : TClassid */;
-var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val; /* _n_classid on <self:AFullPropExternCall> */
+/* method parser_nodes#AFullPropExternCall#n_type for (self: AFullPropExternCall): AType */
+val* parser_nodes__AFullPropExternCall__n_type(val* self) {
+val* var /* : AType */;
+val* var1 /* : AType */;
+var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_nodes.nit", 839);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 839);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AFullPropExternCall#n_classid for (self: Object): TClassid */
-val* VIRTUAL_parser_nodes__AFullPropExternCall__n_classid(val* self) {
-val* var /* : TClassid */;
-val* var1 /* : TClassid */;
-var1 = parser_nodes__AFullPropExternCall__n_classid(self);
+/* method parser_nodes#AFullPropExternCall#n_type for (self: Object): AType */
+val* VIRTUAL_parser_nodes__AFullPropExternCall__n_type(val* self) {
+val* var /* : AType */;
+val* var1 /* : AType */;
+var1 = parser_nodes__AFullPropExternCall__n_type(self);
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AFullPropExternCall#n_classid= for (self: AFullPropExternCall, TClassid) */
-void parser_nodes__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = p0; /* _n_classid on <self:AFullPropExternCall> */
+/* method parser_nodes#AFullPropExternCall#n_type= for (self: AFullPropExternCall, AType) */
+void parser_nodes__AFullPropExternCall__n_type_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = p0; /* _n_type on <self:AFullPropExternCall> */
 RET_LABEL:;
 }
-/* method parser_nodes#AFullPropExternCall#n_classid= for (self: Object, TClassid) */
-void VIRTUAL_parser_nodes__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
-parser_nodes__AFullPropExternCall__n_classid_61d(self, p0);
+/* method parser_nodes#AFullPropExternCall#n_type= for (self: Object, AType) */
+void VIRTUAL_parser_nodes__AFullPropExternCall__n_type_61d(val* self, val* p0) {
+parser_nodes__AFullPropExternCall__n_type_61d(self, p0);
 RET_LABEL:;
 }
-/* method parser_nodes#AFullPropExternCall#n_quad for (self: AFullPropExternCall): nullable TQuad */
-val* parser_nodes__AFullPropExternCall__n_quad(val* self) {
-val* var /* : nullable TQuad */;
-val* var1 /* : nullable TQuad */;
-var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
+/* method parser_nodes#AFullPropExternCall#n_dot for (self: AFullPropExternCall): nullable TDot */
+val* parser_nodes__AFullPropExternCall__n_dot(val* self) {
+val* var /* : nullable TDot */;
+val* var1 /* : nullable TDot */;
+var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AFullPropExternCall#n_quad for (self: Object): nullable TQuad */
-val* VIRTUAL_parser_nodes__AFullPropExternCall__n_quad(val* self) {
-val* var /* : nullable TQuad */;
-val* var1 /* : nullable TQuad */;
-var1 = parser_nodes__AFullPropExternCall__n_quad(self);
+/* method parser_nodes#AFullPropExternCall#n_dot for (self: Object): nullable TDot */
+val* VIRTUAL_parser_nodes__AFullPropExternCall__n_dot(val* self) {
+val* var /* : nullable TDot */;
+val* var1 /* : nullable TDot */;
+var1 = parser_nodes__AFullPropExternCall__n_dot(self);
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AFullPropExternCall#n_quad= for (self: AFullPropExternCall, nullable TQuad) */
-void parser_nodes__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = p0; /* _n_quad on <self:AFullPropExternCall> */
+/* method parser_nodes#AFullPropExternCall#n_dot= for (self: AFullPropExternCall, nullable TDot) */
+void parser_nodes__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = p0; /* _n_dot on <self:AFullPropExternCall> */
 RET_LABEL:;
 }
-/* method parser_nodes#AFullPropExternCall#n_quad= for (self: Object, nullable TQuad) */
-void VIRTUAL_parser_nodes__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
-parser_nodes__AFullPropExternCall__n_quad_61d(self, p0);
+/* method parser_nodes#AFullPropExternCall#n_dot= for (self: Object, nullable TDot) */
+void VIRTUAL_parser_nodes__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
+parser_nodes__AFullPropExternCall__n_dot_61d(self, p0);
 RET_LABEL:;
 }
 /* method parser_nodes#AFullPropExternCall#n_methid for (self: AFullPropExternCall): AMethid */
@@ -5118,8 +5197,9 @@ val* var /* : AMethid */;
 val* var1 /* : AMethid */;
 var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_nodes.nit", 841);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_methid");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 841);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5154,36 +5234,37 @@ void VIRTUAL_parser_nodes__AFullPropExternCall__init(val* self) {
 parser_nodes__AFullPropExternCall__init(self);
 RET_LABEL:;
 }
-/* method parser_nodes#AInitPropExternCall#n_classid for (self: AInitPropExternCall): TClassid */
-val* parser_nodes__AInitPropExternCall__n_classid(val* self) {
-val* var /* : TClassid */;
-val* var1 /* : TClassid */;
-var1 = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val; /* _n_classid on <self:AInitPropExternCall> */
+/* method parser_nodes#AInitPropExternCall#n_type for (self: AInitPropExternCall): AType */
+val* parser_nodes__AInitPropExternCall__n_type(val* self) {
+val* var /* : AType */;
+val* var1 /* : AType */;
+var1 = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_nodes.nit", 845);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 845);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AInitPropExternCall#n_classid for (self: Object): TClassid */
-val* VIRTUAL_parser_nodes__AInitPropExternCall__n_classid(val* self) {
-val* var /* : TClassid */;
-val* var1 /* : TClassid */;
-var1 = parser_nodes__AInitPropExternCall__n_classid(self);
+/* method parser_nodes#AInitPropExternCall#n_type for (self: Object): AType */
+val* VIRTUAL_parser_nodes__AInitPropExternCall__n_type(val* self) {
+val* var /* : AType */;
+val* var1 /* : AType */;
+var1 = parser_nodes__AInitPropExternCall__n_type(self);
 var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_nodes#AInitPropExternCall#n_classid= for (self: AInitPropExternCall, TClassid) */
-void parser_nodes__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = p0; /* _n_classid on <self:AInitPropExternCall> */
+/* method parser_nodes#AInitPropExternCall#n_type= for (self: AInitPropExternCall, AType) */
+void parser_nodes__AInitPropExternCall__n_type_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = p0; /* _n_type on <self:AInitPropExternCall> */
 RET_LABEL:;
 }
-/* method parser_nodes#AInitPropExternCall#n_classid= for (self: Object, TClassid) */
-void VIRTUAL_parser_nodes__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
-parser_nodes__AInitPropExternCall__n_classid_61d(self, p0);
+/* method parser_nodes#AInitPropExternCall#n_type= for (self: Object, AType) */
+void VIRTUAL_parser_nodes__AInitPropExternCall__n_type_61d(val* self, val* p0) {
+parser_nodes__AInitPropExternCall__n_type_61d(self, p0);
 RET_LABEL:;
 }
 /* method parser_nodes#AInitPropExternCall#init for (self: AInitPropExternCall) */
@@ -5202,8 +5283,9 @@ val* var /* : TKwsuper */;
 val* var1 /* : TKwsuper */;
 var1 = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_nodes.nit", 849);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwsuper");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 849);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5254,8 +5336,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_from_type", "src/parser/parser_nodes.nit", 856);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_from_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 856);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5280,14 +5363,43 @@ void VIRTUAL_parser_nodes__ACastAsExternCall__n_from_type_61d(val* self, val* p0
 parser_nodes__ACastAsExternCall__n_from_type_61d(self, p0);
 RET_LABEL:;
 }
+/* method parser_nodes#ACastAsExternCall#n_dot for (self: ACastAsExternCall): nullable TDot */
+val* parser_nodes__ACastAsExternCall__n_dot(val* self) {
+val* var /* : nullable TDot */;
+val* var1 /* : nullable TDot */;
+var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACastAsExternCall#n_dot for (self: Object): nullable TDot */
+val* VIRTUAL_parser_nodes__ACastAsExternCall__n_dot(val* self) {
+val* var /* : nullable TDot */;
+val* var1 /* : nullable TDot */;
+var1 = parser_nodes__ACastAsExternCall__n_dot(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACastAsExternCall#n_dot= for (self: ACastAsExternCall, nullable TDot) */
+void parser_nodes__ACastAsExternCall__n_dot_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = p0; /* _n_dot on <self:ACastAsExternCall> */
+RET_LABEL:;
+}
+/* method parser_nodes#ACastAsExternCall#n_dot= for (self: Object, nullable TDot) */
+void VIRTUAL_parser_nodes__ACastAsExternCall__n_dot_61d(val* self, val* p0) {
+parser_nodes__ACastAsExternCall__n_dot_61d(self, p0);
+RET_LABEL:;
+}
 /* method parser_nodes#ACastAsExternCall#n_kwas for (self: ACastAsExternCall): TKwas */
 val* parser_nodes__ACastAsExternCall__n_kwas(val* self) {
 val* var /* : TKwas */;
 val* var1 /* : TKwas */;
 var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_nodes.nit", 857);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 858);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5318,8 +5430,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_to_type", "src/parser/parser_nodes.nit", 858);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_to_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 859);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5360,8 +5473,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 862);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 863);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5392,8 +5506,9 @@ val* var /* : TKwas */;
 val* var1 /* : TKwas */;
 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_nodes.nit", 863);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 864);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5424,8 +5539,9 @@ val* var /* : TKwnullable */;
 val* var1 /* : TKwnullable */;
 var1 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_nodes.nit", 864);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 865);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5466,8 +5582,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 868);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 869);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5498,8 +5615,9 @@ val* var /* : TKwas */;
 val* var1 /* : TKwas */;
 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_nodes.nit", 869);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwas");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 870);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5530,8 +5648,9 @@ val* var /* : TKwnot */;
 val* var1 /* : TKwnot */;
 var1 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_nodes.nit", 870);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnot");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 871);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5562,8 +5681,9 @@ val* var /* : TKwnullable */;
 val* var1 /* : TKwnullable */;
 var1 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_nodes.nit", 871);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnullable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 872);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5632,8 +5752,9 @@ val* var /* : AVisibility */;
 val* var1 /* : AVisibility */;
 var1 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_visibility", "src/parser/parser_nodes.nit", 878);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 879);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5664,8 +5785,9 @@ val* var /* : TKwtype */;
 val* var1 /* : TKwtype */;
 var1 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwtype", "src/parser/parser_nodes.nit", 879);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwtype");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 880);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5696,8 +5818,9 @@ val* var /* : TClassid */;
 val* var1 /* : TClassid */;
 var1 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 880);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 881);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5728,8 +5851,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 881);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 882);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5836,8 +5960,9 @@ val* var /* : TKwreadable */;
 val* var1 /* : TKwreadable */;
 var1 = self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val; /* _n_kwreadable on <self:AReadAble> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwreadable", "src/parser/parser_nodes.nit", 894);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwreadable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 895);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5878,8 +6003,9 @@ val* var /* : TKwwritable */;
 val* var1 /* : TKwwritable */;
 var1 = self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val; /* _n_kwwritable on <self:AWriteAble> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwwritable", "src/parser/parser_nodes.nit", 900);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwritable");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 901);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5930,8 +6056,9 @@ val* var /* : TId */;
 val* var1 /* : TId */;
 var1 = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 910);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 911);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -5972,8 +6099,9 @@ val* var /* : TPlus */;
 val* var1 /* : TPlus */;
 var1 = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_plus", "src/parser/parser_nodes.nit", 914);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_plus");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 915);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6014,8 +6142,9 @@ val* var /* : TMinus */;
 val* var1 /* : TMinus */;
 var1 = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_minus", "src/parser/parser_nodes.nit", 918);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_minus");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 919);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6056,8 +6185,9 @@ val* var /* : TStar */;
 val* var1 /* : TStar */;
 var1 = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_star", "src/parser/parser_nodes.nit", 922);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_star");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 923);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6098,8 +6228,9 @@ val* var /* : TSlash */;
 val* var1 /* : TSlash */;
 var1 = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_slash", "src/parser/parser_nodes.nit", 926);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_slash");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 927);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6140,8 +6271,9 @@ val* var /* : TPercent */;
 val* var1 /* : TPercent */;
 var1 = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_percent", "src/parser/parser_nodes.nit", 930);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_percent");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 931);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6182,8 +6314,9 @@ val* var /* : TEq */;
 val* var1 /* : TEq */;
 var1 = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_eq", "src/parser/parser_nodes.nit", 934);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_eq");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 935);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6224,8 +6357,9 @@ val* var /* : TNe */;
 val* var1 /* : TNe */;
 var1 = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_ne", "src/parser/parser_nodes.nit", 938);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ne");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 939);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6266,8 +6400,9 @@ val* var /* : TLe */;
 val* var1 /* : TLe */;
 var1 = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_le", "src/parser/parser_nodes.nit", 942);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_le");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 943);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6308,8 +6443,9 @@ val* var /* : TGe */;
 val* var1 /* : TGe */;
 var1 = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_ge", "src/parser/parser_nodes.nit", 946);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ge");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 947);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6350,8 +6486,9 @@ val* var /* : TLt */;
 val* var1 /* : TLt */;
 var1 = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_lt", "src/parser/parser_nodes.nit", 950);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_lt");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 951);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6392,8 +6529,9 @@ val* var /* : TGt */;
 val* var1 /* : TGt */;
 var1 = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_gt", "src/parser/parser_nodes.nit", 954);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gt");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 955);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6434,8 +6572,9 @@ val* var /* : TLl */;
 val* var1 /* : TLl */;
 var1 = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_ll", "src/parser/parser_nodes.nit", 958);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ll");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 959);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6476,8 +6615,9 @@ val* var /* : TGg */;
 val* var1 /* : TGg */;
 var1 = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_gg", "src/parser/parser_nodes.nit", 962);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gg");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 963);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6518,8 +6658,9 @@ val* var /* : TObra */;
 val* var1 /* : TObra */;
 var1 = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_obra", "src/parser/parser_nodes.nit", 966);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 967);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6550,8 +6691,9 @@ val* var /* : TCbra */;
 val* var1 /* : TCbra */;
 var1 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_cbra", "src/parser/parser_nodes.nit", 967);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 968);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6592,8 +6734,9 @@ val* var /* : TStarship */;
 val* var1 /* : TStarship */;
 var1 = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_starship", "src/parser/parser_nodes.nit", 971);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_starship");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 972);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6634,8 +6777,9 @@ val* var /* : TId */;
 val* var1 /* : TId */;
 var1 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 975);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 976);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6666,8 +6810,9 @@ val* var /* : TAssign */;
 val* var1 /* : TAssign */;
 var1 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_assign", "src/parser/parser_nodes.nit", 976);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 977);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6708,8 +6853,9 @@ val* var /* : TObra */;
 val* var1 /* : TObra */;
 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_obra", "src/parser/parser_nodes.nit", 980);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 981);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6740,8 +6886,9 @@ val* var /* : TCbra */;
 val* var1 /* : TCbra */;
 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_cbra", "src/parser/parser_nodes.nit", 981);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 982);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6772,8 +6919,9 @@ val* var /* : TAssign */;
 val* var1 /* : TAssign */;
 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_assign", "src/parser/parser_nodes.nit", 982);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 983);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6842,8 +6990,9 @@ val* var /* : ANodes[AParam] */;
 val* var1 /* : ANodes[AParam] */;
 var1 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_params", "src/parser/parser_nodes.nit", 989);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 990);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -6914,28 +7063,6 @@ void VIRTUAL_parser_nodes__ASignature__n_type_61d(val* self, val* p0) {
 parser_nodes__ASignature__n_type_61d(self, p0);
 RET_LABEL:;
 }
-/* method parser_nodes#ASignature#n_closure_decls for (self: ASignature): ANodes[AClosureDecl] */
-val* parser_nodes__ASignature__n_closure_decls(val* self) {
-val* var /* : ANodes[AClosureDecl] */;
-val* var1 /* : ANodes[AClosureDecl] */;
-var1 = self->attrs[COLOR_parser_nodes__ASignature___n_closure_decls].val; /* _n_closure_decls on <self:ASignature> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_closure_decls", "src/parser/parser_nodes.nit", 992);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#ASignature#n_closure_decls for (self: Object): ANodes[AClosureDecl] */
-val* VIRTUAL_parser_nodes__ASignature__n_closure_decls(val* self) {
-val* var /* : ANodes[AClosureDecl] */;
-val* var1 /* : ANodes[AClosureDecl] */;
-var1 = parser_nodes__ASignature__n_closure_decls(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method parser_nodes#ASignature#init for (self: ASignature) */
 void parser_nodes__ASignature__init(val* self) {
 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Prod__init]))(self) /* init on <self:ASignature>*/;
@@ -6952,8 +7079,9 @@ val* var /* : TId */;
 val* var1 /* : TId */;
 var1 = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 998);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 998);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7044,168 +7172,6 @@ void VIRTUAL_parser_nodes__AParam__init(val* self) {
 parser_nodes__AParam__init(self);
 RET_LABEL:;
 }
-/* method parser_nodes#AClosureDecl#n_kwbreak for (self: AClosureDecl): nullable TKwbreak */
-val* parser_nodes__AClosureDecl__n_kwbreak(val* self) {
-val* var /* : nullable TKwbreak */;
-val* var1 /* : nullable TKwbreak */;
-var1 = self->attrs[COLOR_parser_nodes__AClosureDecl___n_kwbreak].val; /* _n_kwbreak on <self:AClosureDecl> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_kwbreak for (self: Object): nullable TKwbreak */
-val* VIRTUAL_parser_nodes__AClosureDecl__n_kwbreak(val* self) {
-val* var /* : nullable TKwbreak */;
-val* var1 /* : nullable TKwbreak */;
-var1 = parser_nodes__AClosureDecl__n_kwbreak(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_kwbreak= for (self: AClosureDecl, nullable TKwbreak) */
-void parser_nodes__AClosureDecl__n_kwbreak_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AClosureDecl___n_kwbreak].val = p0; /* _n_kwbreak on <self:AClosureDecl> */
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_kwbreak= for (self: Object, nullable TKwbreak) */
-void VIRTUAL_parser_nodes__AClosureDecl__n_kwbreak_61d(val* self, val* p0) {
-parser_nodes__AClosureDecl__n_kwbreak_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_bang for (self: AClosureDecl): TBang */
-val* parser_nodes__AClosureDecl__n_bang(val* self) {
-val* var /* : TBang */;
-val* var1 /* : TBang */;
-var1 = self->attrs[COLOR_parser_nodes__AClosureDecl___n_bang].val; /* _n_bang on <self:AClosureDecl> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_bang", "src/parser/parser_nodes.nit", 1006);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_bang for (self: Object): TBang */
-val* VIRTUAL_parser_nodes__AClosureDecl__n_bang(val* self) {
-val* var /* : TBang */;
-val* var1 /* : TBang */;
-var1 = parser_nodes__AClosureDecl__n_bang(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_bang= for (self: AClosureDecl, TBang) */
-void parser_nodes__AClosureDecl__n_bang_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AClosureDecl___n_bang].val = p0; /* _n_bang on <self:AClosureDecl> */
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_bang= for (self: Object, TBang) */
-void VIRTUAL_parser_nodes__AClosureDecl__n_bang_61d(val* self, val* p0) {
-parser_nodes__AClosureDecl__n_bang_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_id for (self: AClosureDecl): TId */
-val* parser_nodes__AClosureDecl__n_id(val* self) {
-val* var /* : TId */;
-val* var1 /* : TId */;
-var1 = self->attrs[COLOR_parser_nodes__AClosureDecl___n_id].val; /* _n_id on <self:AClosureDecl> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 1007);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_id for (self: Object): TId */
-val* VIRTUAL_parser_nodes__AClosureDecl__n_id(val* self) {
-val* var /* : TId */;
-val* var1 /* : TId */;
-var1 = parser_nodes__AClosureDecl__n_id(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_id= for (self: AClosureDecl, TId) */
-void parser_nodes__AClosureDecl__n_id_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AClosureDecl___n_id].val = p0; /* _n_id on <self:AClosureDecl> */
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_id= for (self: Object, TId) */
-void VIRTUAL_parser_nodes__AClosureDecl__n_id_61d(val* self, val* p0) {
-parser_nodes__AClosureDecl__n_id_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_signature for (self: AClosureDecl): ASignature */
-val* parser_nodes__AClosureDecl__n_signature(val* self) {
-val* var /* : ASignature */;
-val* var1 /* : ASignature */;
-var1 = self->attrs[COLOR_parser_nodes__AClosureDecl___n_signature].val; /* _n_signature on <self:AClosureDecl> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_signature", "src/parser/parser_nodes.nit", 1008);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_signature for (self: Object): ASignature */
-val* VIRTUAL_parser_nodes__AClosureDecl__n_signature(val* self) {
-val* var /* : ASignature */;
-val* var1 /* : ASignature */;
-var1 = parser_nodes__AClosureDecl__n_signature(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_signature= for (self: AClosureDecl, ASignature) */
-void parser_nodes__AClosureDecl__n_signature_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AClosureDecl___n_signature].val = p0; /* _n_signature on <self:AClosureDecl> */
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_signature= for (self: Object, ASignature) */
-void VIRTUAL_parser_nodes__AClosureDecl__n_signature_61d(val* self, val* p0) {
-parser_nodes__AClosureDecl__n_signature_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_expr for (self: AClosureDecl): nullable AExpr */
-val* parser_nodes__AClosureDecl__n_expr(val* self) {
-val* var /* : nullable AExpr */;
-val* var1 /* : nullable AExpr */;
-var1 = self->attrs[COLOR_parser_nodes__AClosureDecl___n_expr].val; /* _n_expr on <self:AClosureDecl> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_expr for (self: Object): nullable AExpr */
-val* VIRTUAL_parser_nodes__AClosureDecl__n_expr(val* self) {
-val* var /* : nullable AExpr */;
-val* var1 /* : nullable AExpr */;
-var1 = parser_nodes__AClosureDecl__n_expr(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AClosureDecl#n_expr= for (self: AClosureDecl, nullable AExpr) */
-void parser_nodes__AClosureDecl__n_expr_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AClosureDecl___n_expr].val = p0; /* _n_expr on <self:AClosureDecl> */
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#n_expr= for (self: Object, nullable AExpr) */
-void VIRTUAL_parser_nodes__AClosureDecl__n_expr_61d(val* self, val* p0) {
-parser_nodes__AClosureDecl__n_expr_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#init for (self: AClosureDecl) */
-void parser_nodes__AClosureDecl__init(val* self) {
-((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Prod__init]))(self) /* init on <self:AClosureDecl>*/;
-RET_LABEL:;
-}
-/* method parser_nodes#AClosureDecl#init for (self: Object) */
-void VIRTUAL_parser_nodes__AClosureDecl__init(val* self) {
-parser_nodes__AClosureDecl__init(self);
-RET_LABEL:;
-}
 /* method parser_nodes#AType#n_kwnullable for (self: AType): nullable TKwnullable */
 val* parser_nodes__AType__n_kwnullable(val* self) {
 val* var /* : nullable TKwnullable */;
@@ -7240,8 +7206,9 @@ val* var /* : TClassid */;
 val* var1 /* : TClassid */;
 var1 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 1017);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1008);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7272,8 +7239,9 @@ val* var /* : ANodes[AType] */;
 val* var1 /* : ANodes[AType] */;
 var1 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_types", "src/parser/parser_nodes.nit", 1020);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1011);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7304,8 +7272,9 @@ val* var /* : TKwlabel */;
 val* var1 /* : TKwlabel */;
 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwlabel", "src/parser/parser_nodes.nit", 1027);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwlabel");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1018);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7336,8 +7305,9 @@ val* var /* : TId */;
 val* var1 /* : TId */;
 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 1028);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1019);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7388,8 +7358,9 @@ val* var /* : ANodes[AExpr] */;
 val* var1 /* : ANodes[AExpr] */;
 var1 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1041);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1032);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7448,8 +7419,9 @@ val* var /* : TKwvar */;
 val* var1 /* : TKwvar */;
 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwvar", "src/parser/parser_nodes.nit", 1048);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1039);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7480,8 +7452,9 @@ val* var /* : TId */;
 val* var1 /* : TId */;
 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 1049);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1040);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7710,8 +7683,9 @@ val* var /* : TKwbreak */;
 val* var1 /* : TKwbreak */;
 var1 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwbreak", "src/parser/parser_nodes.nit", 1074);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwbreak");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1065);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7781,8 +7755,9 @@ val* var /* : TKwabort */;
 val* var1 /* : TKwabort */;
 var1 = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwabort", "src/parser/parser_nodes.nit", 1081);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabort");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1072);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7890,8 +7865,9 @@ val* var /* : TKwdo */;
 val* var1 /* : TKwdo */;
 var1 = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwdo", "src/parser/parser_nodes.nit", 1096);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1087);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7961,8 +7937,9 @@ val* var /* : TKwif */;
 val* var1 /* : TKwif */;
 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwif", "src/parser/parser_nodes.nit", 1103);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1094);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -7993,8 +7970,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1104);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1095);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8091,8 +8069,9 @@ val* var /* : TKwif */;
 val* var1 /* : TKwif */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwif", "src/parser/parser_nodes.nit", 1112);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1103);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8123,8 +8102,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1113);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1104);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8155,8 +8135,9 @@ val* var /* : TKwthen */;
 val* var1 /* : TKwthen */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwthen", "src/parser/parser_nodes.nit", 1114);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwthen");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1105);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8187,8 +8168,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_then", "src/parser/parser_nodes.nit", 1115);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_then");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1106);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8219,8 +8201,9 @@ val* var /* : TKwelse */;
 val* var1 /* : TKwelse */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwelse", "src/parser/parser_nodes.nit", 1116);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwelse");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1107);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8251,8 +8234,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_else", "src/parser/parser_nodes.nit", 1117);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_else");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1108);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8293,8 +8277,9 @@ val* var /* : TKwwhile */;
 val* var1 /* : TKwwhile */;
 var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwwhile", "src/parser/parser_nodes.nit", 1124);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwhile");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1115);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8325,8 +8310,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1125);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1116);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8357,8 +8343,9 @@ val* var /* : TKwdo */;
 val* var1 /* : TKwdo */;
 var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwdo", "src/parser/parser_nodes.nit", 1126);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1117);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8428,8 +8415,9 @@ val* var /* : TKwloop */;
 val* var1 /* : TKwloop */;
 var1 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwloop", "src/parser/parser_nodes.nit", 1134);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwloop");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1125);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8499,8 +8487,9 @@ val* var /* : TKwfor */;
 val* var1 /* : TKwfor */;
 var1 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwfor", "src/parser/parser_nodes.nit", 1142);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwfor");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1133);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8531,8 +8520,9 @@ val* var /* : ANodes[TId] */;
 val* var1 /* : ANodes[TId] */;
 var1 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_ids", "src/parser/parser_nodes.nit", 1143);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ids");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1134);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8553,8 +8543,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1144);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1135);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8585,8 +8576,9 @@ val* var /* : TKwdo */;
 val* var1 /* : TKwdo */;
 var1 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwdo", "src/parser/parser_nodes.nit", 1145);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1136);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8656,8 +8648,9 @@ val* var /* : TKwassert */;
 val* var1 /* : TKwassert */;
 var1 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwassert", "src/parser/parser_nodes.nit", 1152);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwassert");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1143);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8716,8 +8709,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1154);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1145);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8786,8 +8780,9 @@ val* var /* : TAssign */;
 val* var1 /* : TAssign */;
 var1 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AAssignFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_assign", "src/parser/parser_nodes.nit", 1161);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1152);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8818,8 +8813,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAssignFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_value", "src/parser/parser_nodes.nit", 1162);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_value");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1153);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8860,8 +8856,9 @@ val* var /* : AAssignOp */;
 val* var1 /* : AAssignOp */;
 var1 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AReassignFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_assign_op", "src/parser/parser_nodes.nit", 1168);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign_op");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1159);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8892,8 +8889,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AReassignFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_value", "src/parser/parser_nodes.nit", 1169);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_value");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1160);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8934,8 +8932,9 @@ val* var /* : TKwonce */;
 val* var1 /* : TKwonce */;
 var1 = self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwonce", "src/parser/parser_nodes.nit", 1175);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwonce");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1166);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -8976,8 +8975,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1182);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1173);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9002,28 +9002,6 @@ void VIRTUAL_parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
 parser_nodes__ASendExpr__n_expr_61d(self, p0);
 RET_LABEL:;
 }
-/* method parser_nodes#ASendExpr#n_closure_defs for (self: ASendExpr): ANodes[AClosureDef] */
-val* parser_nodes__ASendExpr__n_closure_defs(val* self) {
-val* var /* : ANodes[AClosureDef] */;
-val* var1 /* : ANodes[AClosureDef] */;
-var1 = self->attrs[COLOR_parser_nodes__ASendExpr___n_closure_defs].val; /* _n_closure_defs on <self:ASendExpr> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_closure_defs", "src/parser/parser_nodes.nit", 1184);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#ASendExpr#n_closure_defs for (self: Object): ANodes[AClosureDef] */
-val* VIRTUAL_parser_nodes__ASendExpr__n_closure_defs(val* self) {
-val* var /* : ANodes[AClosureDef] */;
-val* var1 /* : ANodes[AClosureDef] */;
-var1 = parser_nodes__ASendExpr__n_closure_defs(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method parser_nodes#ASendExpr#init for (self: ASendExpr) */
 void parser_nodes__ASendExpr__init(val* self) {
 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AExpr__init]))(self) /* init on <self:ASendExpr>*/;
@@ -9040,8 +9018,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ABinopExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1190);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr2");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1180);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9092,8 +9071,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1203);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1193);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9124,8 +9104,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1204);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr2");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1194);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9166,8 +9147,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1210);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1200);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9198,8 +9180,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1211);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr2");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1201);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9240,8 +9223,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1217);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1207);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9272,8 +9256,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1218);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr2");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1208);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9314,8 +9299,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1224);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1214);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9346,8 +9332,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1225);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr2");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1215);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9388,8 +9375,9 @@ val* var /* : TKwnot */;
 val* var1 /* : TKwnot */;
 var1 = self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_nodes.nit", 1231);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnot");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1221);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9420,8 +9408,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1232);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1222);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9466,80 +9455,6 @@ void VIRTUAL_parser_nodes__AEqExpr__init(val* self) {
 parser_nodes__AEqExpr__init(self);
 RET_LABEL:;
 }
-/* method parser_nodes#AEeExpr#n_expr for (self: AEeExpr): AExpr */
-val* parser_nodes__AEeExpr__n_expr(val* self) {
-val* var /* : AExpr */;
-val* var1 /* : AExpr */;
-var1 = self->attrs[COLOR_parser_nodes__AEeExpr___n_expr].val; /* _n_expr on <self:AEeExpr> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1243);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AEeExpr#n_expr for (self: Object): AExpr */
-val* VIRTUAL_parser_nodes__AEeExpr__n_expr(val* self) {
-val* var /* : AExpr */;
-val* var1 /* : AExpr */;
-var1 = parser_nodes__AEeExpr__n_expr(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AEeExpr#n_expr= for (self: AEeExpr, AExpr) */
-void parser_nodes__AEeExpr__n_expr_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AEeExpr___n_expr].val = p0; /* _n_expr on <self:AEeExpr> */
-RET_LABEL:;
-}
-/* method parser_nodes#AEeExpr#n_expr= for (self: Object, AExpr) */
-void VIRTUAL_parser_nodes__AEeExpr__n_expr_61d(val* self, val* p0) {
-parser_nodes__AEeExpr__n_expr_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AEeExpr#n_expr2 for (self: AEeExpr): AExpr */
-val* parser_nodes__AEeExpr__n_expr2(val* self) {
-val* var /* : AExpr */;
-val* var1 /* : AExpr */;
-var1 = self->attrs[COLOR_parser_nodes__AEeExpr___n_expr2].val; /* _n_expr2 on <self:AEeExpr> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr2", "src/parser/parser_nodes.nit", 1244);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AEeExpr#n_expr2 for (self: Object): AExpr */
-val* VIRTUAL_parser_nodes__AEeExpr__n_expr2(val* self) {
-val* var /* : AExpr */;
-val* var1 /* : AExpr */;
-var1 = parser_nodes__AEeExpr__n_expr2(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method parser_nodes#AEeExpr#n_expr2= for (self: AEeExpr, AExpr) */
-void parser_nodes__AEeExpr__n_expr2_61d(val* self, val* p0) {
-self->attrs[COLOR_parser_nodes__AEeExpr___n_expr2].val = p0; /* _n_expr2 on <self:AEeExpr> */
-RET_LABEL:;
-}
-/* method parser_nodes#AEeExpr#n_expr2= for (self: Object, AExpr) */
-void VIRTUAL_parser_nodes__AEeExpr__n_expr2_61d(val* self, val* p0) {
-parser_nodes__AEeExpr__n_expr2_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_nodes#AEeExpr#init for (self: AEeExpr) */
-void parser_nodes__AEeExpr__init(val* self) {
-((void (*)(val*))(self->class->vft[COLOR_parser_nodes__ABoolExpr__init]))(self) /* init on <self:AEeExpr>*/;
-RET_LABEL:;
-}
-/* method parser_nodes#AEeExpr#init for (self: Object) */
-void VIRTUAL_parser_nodes__AEeExpr__init(val* self) {
-parser_nodes__AEeExpr__init(self);
-RET_LABEL:;
-}
 /* method parser_nodes#ANeExpr#init for (self: ANeExpr) */
 void parser_nodes__ANeExpr__init(val* self) {
 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__ABinopExpr__init]))(self) /* init on <self:ANeExpr>*/;
@@ -9616,8 +9531,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1285);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1268);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9648,8 +9564,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 1286);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1269);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9750,8 +9667,9 @@ val* var /* : TMinus */;
 val* var1 /* : TMinus */;
 var1 = self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val; /* _n_minus on <self:AUminusExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_minus", "src/parser/parser_nodes.nit", 1322);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_minus");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1305);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9792,8 +9710,9 @@ val* var /* : TKwnew */;
 val* var1 /* : TKwnew */;
 var1 = self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnew", "src/parser/parser_nodes.nit", 1328);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnew");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1311);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9824,8 +9743,9 @@ val* var /* : AType */;
 val* var1 /* : AType */;
 var1 = self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_nodes.nit", 1329);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1312);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9884,8 +9804,9 @@ val* var /* : AExprs */;
 val* var1 /* : AExprs */;
 var1 = self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_nodes.nit", 1333);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1316);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9926,8 +9847,9 @@ val* var /* : AExpr */;
 val* var1 /* : AExpr */;
 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_nodes.nit", 1340);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1323);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9958,8 +9880,9 @@ val* var /* : TAttrid */;
 val* var1 /* : TAttrid */;
 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrFormExpr> */
 if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_nodes.nit", 1343);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1326);
+show_backtrace(1);
 }
 var = var1;
 RET_LABEL:;
@@ -9999,3 +9922,80 @@ void parser_nodes__AAttrExpr__init(val* self) {
 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__init]))(self) /* init on <self:AAttrExpr>*/;
 RET_LABEL:;
 }
+/* method parser_nodes#AAttrExpr#init for (self: Object) */
+void VIRTUAL_parser_nodes__AAttrExpr__init(val* self) {
+parser_nodes__AAttrExpr__init(self);
+RET_LABEL:;
+}
+/* method parser_nodes#AAttrAssignExpr#init for (self: AAttrAssignExpr) */
+void parser_nodes__AAttrAssignExpr__init(val* self) {
+((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__init]))(self) /* init on <self:AAttrAssignExpr>*/;
+((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__init]))(self) /* init on <self:AAttrAssignExpr>*/;
+RET_LABEL:;
+}
+/* method parser_nodes#AAttrAssignExpr#init for (self: Object) */
+void VIRTUAL_parser_nodes__AAttrAssignExpr__init(val* self) {
+parser_nodes__AAttrAssignExpr__init(self);
+RET_LABEL:;
+}
+/* method parser_nodes#ACallFormExpr#n_id for (self: ACallFormExpr): TId */
+val* parser_nodes__ACallFormExpr__n_id(val* self) {
+val* var /* : TId */;
+val* var1 /* : TId */;
+var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallFormExpr> */
+if (var1 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1345);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACallFormExpr#n_id for (self: Object): TId */
+val* VIRTUAL_parser_nodes__ACallFormExpr__n_id(val* self) {
+val* var /* : TId */;
+val* var1 /* : TId */;
+var1 = parser_nodes__ACallFormExpr__n_id(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACallFormExpr#n_id= for (self: ACallFormExpr, TId) */
+void parser_nodes__ACallFormExpr__n_id_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = p0; /* _n_id on <self:ACallFormExpr> */
+RET_LABEL:;
+}
+/* method parser_nodes#ACallFormExpr#n_id= for (self: Object, TId) */
+void VIRTUAL_parser_nodes__ACallFormExpr__n_id_61d(val* self, val* p0) {
+parser_nodes__ACallFormExpr__n_id_61d(self, p0);
+RET_LABEL:;
+}
+/* method parser_nodes#ACallFormExpr#n_args for (self: ACallFormExpr): AExprs */
+val* parser_nodes__ACallFormExpr__n_args(val* self) {
+val* var /* : AExprs */;
+val* var1 /* : AExprs */;
+var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallFormExpr> */
+if (var1 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_args");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser_nodes.nit", 1348);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACallFormExpr#n_args for (self: Object): AExprs */
+val* VIRTUAL_parser_nodes__ACallFormExpr__n_args(val* self) {
+val* var /* : AExprs */;
+val* var1 /* : AExprs */;
+var1 = parser_nodes__ACallFormExpr__n_args(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method parser_nodes#ACallFormExpr#n_args= for (self: ACallFormExpr, AExprs) */
+void parser_nodes__ACallFormExpr__n_args_61d(val* self, val* p0) {
+self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = p0; /* _n_args on <self:ACallFormExpr> */
+RET_LABEL:;
+}