regern c_src
[nit.git] / c_src / nit__parser_prod.sep.1.c
index 1ad588a..f7d7970 100644 (file)
@@ -5,8 +5,7 @@ val* var_n_moduledecl /* var n_moduledecl: nullable AModuledecl */;
 val* var_n_imports /* var n_imports: Collection[Object] */;
 val* var_n_extern_code_blocks /* var n_extern_code_blocks: Collection[Object] */;
 val* var_n_classdefs /* var n_classdefs: Collection[Object] */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
@@ -17,31 +16,35 @@ val* var10 /* : ANodes[AExternCodeBlock] */;
 val* var12 /* : ANodes[AExternCodeBlock] */;
 val* var13 /* : ANodes[AClassdef] */;
 val* var15 /* : ANodes[AClassdef] */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AModule> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_moduledecl = p0;
 var_n_imports = p1;
 var_n_extern_code_blocks = p2;
 var_n_classdefs = p3;
 self->attrs[COLOR_nit__parser_nodes__AModule___n_moduledecl].val = var_n_moduledecl; /* _n_moduledecl on <self:AModule> */
-var = NULL;
 if (var_n_moduledecl == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_moduledecl,var) on <var_n_moduledecl:nullable AModuledecl> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_moduledecl,((val*)NULL)) on <var_n_moduledecl:nullable AModuledecl> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_moduledecl->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_moduledecl, var_other) /* == on <var_n_moduledecl:nullable AModuledecl(AModuledecl)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_moduledecl->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_moduledecl, var_other); /* == on <var_n_moduledecl:nullable AModuledecl(AModuledecl)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_moduledecl,self) on <var_n_moduledecl:nullable AModuledecl(AModuledecl)> */
 var_n_moduledecl->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_moduledecl:nullable AModuledecl(AModuledecl)> */
@@ -55,8 +58,8 @@ RET_LABEL6:(void)0;
 var9 = self->attrs[COLOR_nit__parser_nodes__AModule___n_imports].val; /* _n_imports on <self:AModule> */
 if (unlikely(var9 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 913);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1090);
+fatal_exit(1);
 }
 var7 = var9;
 RET_LABEL8:(void)0;
@@ -70,8 +73,8 @@ nit___nit__ANodes___unsafe_add_all(var7, var_n_imports); /* Direct call parser_n
 var12 = self->attrs[COLOR_nit__parser_nodes__AModule___n_extern_code_blocks].val; /* _n_extern_code_blocks on <self:AModule> */
 if (unlikely(var12 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 916);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1093);
+fatal_exit(1);
 }
 var10 = var12;
 RET_LABEL11:(void)0;
@@ -85,8 +88,8 @@ nit___nit__ANodes___unsafe_add_all(var10, var_n_extern_code_blocks); /* Direct c
 var15 = self->attrs[COLOR_nit__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
 if (unlikely(var15 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 919);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1096);
+fatal_exit(1);
 }
 var13 = var15;
 RET_LABEL14:(void)0;
@@ -159,7 +162,7 @@ if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AModuledecl", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 27);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModule___n_moduledecl_61d(self, var_new_child); /* Direct call parser_prod#AModule#n_moduledecl= on <self:AModule>*/
@@ -172,8 +175,8 @@ goto RET_LABEL;
 var10 = self->attrs[COLOR_nit__parser_nodes__AModule___n_imports].val; /* _n_imports on <self:AModule> */
 if (unlikely(var10 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 913);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1090);
+fatal_exit(1);
 }
 var8 = var10;
 RET_LABEL9:(void)0;
@@ -191,8 +194,8 @@ goto RET_LABEL;
 var14 = self->attrs[COLOR_nit__parser_nodes__AModule___n_extern_code_blocks].val; /* _n_extern_code_blocks on <self:AModule> */
 if (unlikely(var14 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 916);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1093);
+fatal_exit(1);
 }
 var12 = var14;
 RET_LABEL13:(void)0;
@@ -210,8 +213,8 @@ goto RET_LABEL;
 var18 = self->attrs[COLOR_nit__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
 if (unlikely(var18 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 919);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1096);
+fatal_exit(1);
 }
 var16 = var18;
 RET_LABEL17:(void)0;
@@ -229,38 +232,36 @@ RET_LABEL:;
 /* method parser_prod#AModule#n_moduledecl= for (self: AModule, nullable AModuledecl) */
 void nit__parser_prod___AModule___n_moduledecl_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AModuledecl */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AModule___n_moduledecl].val = var_node; /* _n_moduledecl on <self:AModule> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AModuledecl> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AModuledecl> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AModuledecl(AModuledecl)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AModuledecl(AModuledecl)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AModuledecl(AModuledecl)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AModuledecl(AModuledecl)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -287,8 +288,8 @@ nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visito
 var3 = self->attrs[COLOR_nit__parser_nodes__AModule___n_imports].val; /* _n_imports on <self:AModule> */
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_imports");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 913);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1090);
+fatal_exit(1);
 }
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -302,8 +303,8 @@ nit___nit__ANodes___visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#v
 var6 = self->attrs[COLOR_nit__parser_nodes__AModule___n_extern_code_blocks].val; /* _n_extern_code_blocks on <self:AModule> */
 if (unlikely(var6 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_blocks");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 916);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1093);
+fatal_exit(1);
 }
 var4 = var6;
 RET_LABEL5:(void)0;
@@ -317,8 +318,8 @@ nit___nit__ANodes___visit_all(var4, var_v); /* Direct call parser_nodes#ANodes#v
 var9 = self->attrs[COLOR_nit__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <self:AModule> */
 if (unlikely(var9 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 919);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1096);
+fatal_exit(1);
 }
 var7 = var9;
 RET_LABEL8:(void)0;
@@ -337,22 +338,24 @@ val* var_n_visibility /* var n_visibility: nullable AVisibility */;
 val* var_n_kwmodule /* var n_kwmodule: nullable TKwmodule */;
 val* var_n_name /* var n_name: nullable AModuleName */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-val* var7 /* : null */;
+short int var7 /* : Bool */;
 short int var8 /* : Bool */;
-short int var9 /* : Bool */;
+short int var10 /* : Bool */;
 short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var17 /* : null */;
-short int var18 /* : Bool */;
+short int var16 /* : Bool */;
+short int var17 /* : Bool */;
 short int var19 /* : Bool */;
-short int var21 /* : Bool */;
-short int var22 /* : Bool */;
+short int var20 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AModuledecl> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_doc = p0;
 var_n_kwredef = p1;
 var_n_visibility = p2;
@@ -360,26 +363,25 @@ var_n_kwmodule = p3;
 var_n_name = p4;
 var_n_annotations = p5;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AModuledecl> */
-var = NULL;
 if (var_n_doc == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
 var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
@@ -389,30 +391,29 @@ RET_LABEL6:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AModuledecl> */
-var7 = NULL;
 if (var_n_kwredef == NULL) {
-var8 = 0; /* is null */
+var7 = 0; /* is null */
 } else {
-var8 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var7) on <var_n_kwredef:nullable TKwredef> */
-var_other = var7;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var11 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var8 = var9;
+var7 = var8;
 }
-if (var8){
+if (var7){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-RET_LABEL13:(void)0;
+RET_LABEL12:(void)0;
 }
 }
 } else {
@@ -420,91 +421,90 @@ RET_LABEL13:(void)0;
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 64);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AModuledecl> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 65);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL14:(void)0;
+RET_LABEL13:(void)0;
 }
 }
 if (unlikely(var_n_kwmodule == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 66);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_kwmodule].val = var_n_kwmodule; /* _n_kwmodule on <self:AModuledecl> */
 if (var_n_kwmodule == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 67);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwmodule,self) on <var_n_kwmodule:nullable TKwmodule> */
 if (unlikely(var_n_kwmodule == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwmodule->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwmodule:nullable TKwmodule> */
-RET_LABEL15:(void)0;
+RET_LABEL14:(void)0;
 }
 }
 if (unlikely(var_n_name == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 68);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_name].val = var_n_name; /* _n_name on <self:AModuledecl> */
 if (var_n_name == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 69);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_name,self) on <var_n_name:nullable AModuleName> */
 if (unlikely(var_n_name == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_name->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_name:nullable AModuleName> */
-RET_LABEL16:(void)0;
+RET_LABEL15:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AModuledecl> */
-var17 = NULL;
 if (var_n_annotations == NULL) {
-var18 = 0; /* is null */
+var16 = 0; /* is null */
 } else {
-var18 = 1; /* arg is null and recv is not */
+var16 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var17) on <var_n_annotations:nullable AAnnotations> */
-var_other = var17;
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var21 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var19 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
-var22 = !var21;
-var19 = var22;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var20 = !var19;
+var17 = var20;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
 }
-var18 = var19;
+var16 = var17;
 }
-if (var18){
+if (var16){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL23:(void)0;
+RET_LABEL21:(void)0;
 }
 }
 } else {
@@ -607,7 +607,7 @@ if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 77);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_doc= on <self:AModuledecl>*/
@@ -652,7 +652,7 @@ if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 81);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_kwredef= on <self:AModuledecl>*/
@@ -697,7 +697,7 @@ if (unlikely(!var26)) {
 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 85);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_visibility= on <self:AModuledecl>*/
@@ -709,7 +709,7 @@ var30 = self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_kwmodule].val; /* _
 if (unlikely(var30 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwmodule");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 88);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwmodule> */
@@ -744,7 +744,7 @@ if (unlikely(!var36)) {
 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwmodule", var_class_name39);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 89);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___n_kwmodule_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_kwmodule= on <self:AModuledecl>*/
@@ -756,7 +756,7 @@ var40 = self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_name].val; /* _n_na
 if (unlikely(var40 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 92);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var40,var_old_child) on <var40:AModuleName> */
@@ -791,7 +791,7 @@ if (unlikely(!var46)) {
 var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModuleName", var_class_name49);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 93);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___n_name_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_name= on <self:AModuledecl>*/
@@ -836,7 +836,7 @@ if (unlikely(!var57)) {
 var_class_name60 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name60);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 97);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AModuledecl___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AModuledecl#n_annotations= on <self:AModuledecl>*/
@@ -849,38 +849,36 @@ RET_LABEL:;
 /* method parser_prod#AModuledecl#n_doc= for (self: AModuledecl, nullable ADoc) */
 void nit__parser_prod___AModuledecl___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
 val* var_node /* var node: nullable ADoc */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AModuledecl> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -890,38 +888,36 @@ RET_LABEL:;
 /* method parser_prod#AModuledecl#n_kwredef= for (self: AModuledecl, nullable TKwredef) */
 void nit__parser_prod___AModuledecl___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AModuledecl> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -936,13 +932,13 @@ self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node;
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 115);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
 RET_LABEL1:(void)0;
@@ -979,38 +975,36 @@ RET_LABEL:;
 /* method parser_prod#AModuledecl#n_annotations= for (self: AModuledecl, nullable AAnnotations) */
 void nit__parser_prod___AModuledecl___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AModuledecl> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -1043,7 +1037,7 @@ var3 = self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_kwmodule].val; /* _n
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwmodule");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 139);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1052,7 +1046,7 @@ var4 = self->attrs[COLOR_nit__parser_nodes__AModuledecl___n_name].val; /* _n_nam
 if (unlikely(var4 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 140);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1069,12 +1063,16 @@ val* var_n_visibility /* var n_visibility: nullable AVisibility */;
 val* var_n_kwimport /* var n_kwimport: nullable TKwimport */;
 val* var_n_name /* var n_name: nullable AModuleName */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var /* : null */;
-short int var4 /* : Bool */;
+short int var /* : Bool */;
 short int var5 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var7 /* : Bool */;
 short int var8 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AStdImport> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_visibility = p0;
 var_n_kwimport = p1;
 var_n_name = p2;
@@ -1082,87 +1080,86 @@ var_n_annotations = p3;
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 152);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AStdImport> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 153);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 if (unlikely(var_n_kwimport == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 154);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val = var_n_kwimport; /* _n_kwimport on <self:AStdImport> */
 if (var_n_kwimport == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 155);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwimport,self) on <var_n_kwimport:nullable TKwimport> */
 if (unlikely(var_n_kwimport == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwimport->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwimport:nullable TKwimport> */
-RET_LABEL2:(void)0;
+RET_LABEL3:(void)0;
 }
 }
 if (unlikely(var_n_name == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 156);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AStdImport___n_name].val = var_n_name; /* _n_name on <self:AStdImport> */
 if (var_n_name == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 157);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_name,self) on <var_n_name:nullable AModuleName> */
 if (unlikely(var_n_name == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_name->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_name:nullable AModuleName> */
-RET_LABEL3:(void)0;
+RET_LABEL4:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AStdImport> */
-var = NULL;
 if (var_n_annotations == NULL) {
-var4 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var4 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var7 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var7 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
 var8 = !var7;
 var5 = var8;
 goto RET_LABEL6;
 RET_LABEL6:(void)0;
 }
-var4 = var5;
+var = var5;
 }
-if (var4){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
@@ -1217,7 +1214,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val; /* _n_vi
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 164);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:AVisibility> */
@@ -1252,7 +1249,7 @@ if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 165);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdImport___nit__parser_nodes__AImport__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AStdImport#n_visibility= on <self:AStdImport>*/
@@ -1264,7 +1261,7 @@ var7 = self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val; /* _n_kwi
 if (unlikely(var7 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 168);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwimport> */
@@ -1299,7 +1296,7 @@ if (unlikely(!var13)) {
 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwimport", var_class_name16);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 169);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdImport___nit__parser_nodes__AImport__n_kwimport_61d(self, var_new_child); /* Direct call parser_prod#AStdImport#n_kwimport= on <self:AStdImport>*/
@@ -1311,7 +1308,7 @@ var17 = self->attrs[COLOR_nit__parser_nodes__AStdImport___n_name].val; /* _n_nam
 if (unlikely(var17 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 172);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AModuleName> */
@@ -1346,7 +1343,7 @@ if (unlikely(!var23)) {
 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModuleName", var_class_name26);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 173);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdImport___n_name_61d(self, var_new_child); /* Direct call parser_prod#AStdImport#n_name= on <self:AStdImport>*/
@@ -1391,7 +1388,7 @@ if (unlikely(!var34)) {
 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name37);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 177);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdImport___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AStdImport#n_annotations= on <self:AStdImport>*/
@@ -1443,38 +1440,36 @@ RET_LABEL:;
 /* method parser_prod#AStdImport#n_annotations= for (self: AStdImport, nullable AAnnotations) */
 void nit__parser_prod___AStdImport___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AStdImport> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -1493,7 +1488,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val; /* _n_vi
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 206);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1502,7 +1497,7 @@ var1 = self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val; /* _n_kwi
 if (unlikely(var1 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 207);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1511,7 +1506,7 @@ var2 = self->attrs[COLOR_nit__parser_nodes__AStdImport___n_name].val; /* _n_name
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_name");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 208);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1527,70 +1522,75 @@ void nit__parser_prod___ANoImport___init_anoimport(val* self, val* p0, val* p1,
 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
 val* var_n_kwimport /* var n_kwimport: nullable TKwimport */;
 val* var_n_kwend /* var n_kwend: nullable TKwend */;
+{
+{ /* Inline kernel#Object#init (self) on <self:ANoImport> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_visibility = p0;
 var_n_kwimport = p1;
 var_n_kwend = p2;
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 219);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val = var_n_visibility; /* _n_visibility on <self:ANoImport> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 220);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 if (unlikely(var_n_kwimport == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 221);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val = var_n_kwimport; /* _n_kwimport on <self:ANoImport> */
 if (var_n_kwimport == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 222);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwimport,self) on <var_n_kwimport:nullable TKwimport> */
 if (unlikely(var_n_kwimport == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwimport->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwimport:nullable TKwimport> */
-RET_LABEL2:(void)0;
+RET_LABEL3:(void)0;
 }
 }
 if (unlikely(var_n_kwend == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 223);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ANoImport___n_kwend].val = var_n_kwend; /* _n_kwend on <self:ANoImport> */
 if (var_n_kwend == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 224);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend> */
 if (unlikely(var_n_kwend == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwend->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend> */
-RET_LABEL3:(void)0;
+RET_LABEL4:(void)0;
 }
 }
 RET_LABEL:;
@@ -1630,7 +1630,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val; /* _n_vi
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 229);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:AVisibility> */
@@ -1665,7 +1665,7 @@ if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 230);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ANoImport___nit__parser_nodes__AImport__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#ANoImport#n_visibility= on <self:ANoImport>*/
@@ -1677,7 +1677,7 @@ var7 = self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val; /* _n_kwi
 if (unlikely(var7 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 233);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwimport> */
@@ -1712,7 +1712,7 @@ if (unlikely(!var13)) {
 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwimport", var_class_name16);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 234);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ANoImport___nit__parser_nodes__AImport__n_kwimport_61d(self, var_new_child); /* Direct call parser_prod#ANoImport#n_kwimport= on <self:ANoImport>*/
@@ -1724,7 +1724,7 @@ var17 = self->attrs[COLOR_nit__parser_nodes__ANoImport___n_kwend].val; /* _n_kwe
 if (unlikely(var17 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwend");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 237);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwend> */
@@ -1759,7 +1759,7 @@ if (unlikely(!var23)) {
 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwend", var_class_name26);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 238);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ANoImport___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#ANoImport#n_kwend= on <self:ANoImport>*/
@@ -1819,7 +1819,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AImport___n_visibility].val; /* _n_vi
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_visibility");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 262);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1828,7 +1828,7 @@ var1 = self->attrs[COLOR_nit__parser_nodes__AImport___n_kwimport].val; /* _n_kwi
 if (unlikely(var1 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 263);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1837,7 +1837,7 @@ var2 = self->attrs[COLOR_nit__parser_nodes__ANoImport___n_kwend].val; /* _n_kwen
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwend");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 264);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -1847,38 +1847,42 @@ RET_LABEL:;
 /* method parser_prod#APublicVisibility#init_apublicvisibility for (self: APublicVisibility, nullable TKwpublic) */
 void nit__parser_prod___APublicVisibility___init_apublicvisibility(val* self, val* p0) {
 val* var_n_kwpublic /* var n_kwpublic: nullable TKwpublic */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
+{
+((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__APublicVisibility__n_kwpublic_61d]))(self, p0); /* n_kwpublic= on <self:APublicVisibility>*/
+}
+{
+((void(*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__init]))(self); /* init on <self:APublicVisibility>*/
+}
 var_n_kwpublic = p0;
 self->attrs[COLOR_nit__parser_nodes__APublicVisibility___n_kwpublic].val = var_n_kwpublic; /* _n_kwpublic on <self:APublicVisibility> */
-var = NULL;
 if (var_n_kwpublic == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwpublic,var) on <var_n_kwpublic:nullable TKwpublic> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_kwpublic,((val*)NULL)) on <var_n_kwpublic:nullable TKwpublic> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_kwpublic->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwpublic, var_other) /* == on <var_n_kwpublic:nullable TKwpublic(TKwpublic)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_n_kwpublic->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwpublic, var_other); /* == on <var_n_kwpublic:nullable TKwpublic(TKwpublic)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwpublic,self) on <var_n_kwpublic:nullable TKwpublic(TKwpublic)> */
 var_n_kwpublic->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwpublic:nullable TKwpublic(TKwpublic)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -1938,7 +1942,7 @@ if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwpublic", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 279);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___APublicVisibility___n_kwpublic_61d(self, var_new_child); /* Direct call parser_prod#APublicVisibility#n_kwpublic= on <self:APublicVisibility>*/
@@ -1951,38 +1955,36 @@ RET_LABEL:;
 /* method parser_prod#APublicVisibility#n_kwpublic= for (self: APublicVisibility, nullable TKwpublic) */
 void nit__parser_prod___APublicVisibility___n_kwpublic_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwpublic */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__APublicVisibility___n_kwpublic].val = var_node; /* _n_kwpublic on <self:APublicVisibility> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwpublic> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwpublic> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwpublic(TKwpublic)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwpublic(TKwpublic)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwpublic(TKwpublic)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwpublic(TKwpublic)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -2003,26 +2005,31 @@ RET_LABEL:;
 /* method parser_prod#APrivateVisibility#init_aprivatevisibility for (self: APrivateVisibility, nullable TKwprivate) */
 void nit__parser_prod___APrivateVisibility___init_aprivatevisibility(val* self, val* p0) {
 val* var_n_kwprivate /* var n_kwprivate: nullable TKwprivate */;
+{
+{ /* Inline kernel#Object#init (self) on <self:APrivateVisibility> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwprivate = p0;
 if (unlikely(var_n_kwprivate == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 301);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__APrivateVisibility___n_kwprivate].val = var_n_kwprivate; /* _n_kwprivate on <self:APrivateVisibility> */
 if (var_n_kwprivate == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 302);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwprivate,self) on <var_n_kwprivate:nullable TKwprivate> */
 if (unlikely(var_n_kwprivate == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwprivate->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwprivate:nullable TKwprivate> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -2046,7 +2053,7 @@ var = self->attrs[COLOR_nit__parser_nodes__APrivateVisibility___n_kwprivate].val
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwprivate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 307);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwprivate> */
@@ -2081,7 +2088,7 @@ if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwprivate", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 308);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___APrivateVisibility___n_kwprivate_61d(self, var_new_child); /* Direct call parser_prod#APrivateVisibility#n_kwprivate= on <self:APrivateVisibility>*/
@@ -2113,7 +2120,7 @@ var = self->attrs[COLOR_nit__parser_nodes__APrivateVisibility___n_kwprivate].val
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwprivate");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 322);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -2123,26 +2130,31 @@ RET_LABEL:;
 /* method parser_prod#AProtectedVisibility#init_aprotectedvisibility for (self: AProtectedVisibility, nullable TKwprotected) */
 void nit__parser_prod___AProtectedVisibility___init_aprotectedvisibility(val* self, val* p0) {
 val* var_n_kwprotected /* var n_kwprotected: nullable TKwprotected */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AProtectedVisibility> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwprotected = p0;
 if (unlikely(var_n_kwprotected == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 330);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AProtectedVisibility___n_kwprotected].val = var_n_kwprotected; /* _n_kwprotected on <self:AProtectedVisibility> */
 if (var_n_kwprotected == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 331);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwprotected,self) on <var_n_kwprotected:nullable TKwprotected> */
 if (unlikely(var_n_kwprotected == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwprotected->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwprotected:nullable TKwprotected> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -2166,7 +2178,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AProtectedVisibility___n_kwprotected]
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwprotected");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 336);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwprotected> */
@@ -2201,7 +2213,7 @@ if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwprotected", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 337);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AProtectedVisibility___n_kwprotected_61d(self, var_new_child); /* Direct call parser_prod#AProtectedVisibility#n_kwprotected= on <self:AProtectedVisibility>*/
@@ -2233,7 +2245,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AProtectedVisibility___n_kwprotected]
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwprotected");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 351);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -2243,26 +2255,31 @@ RET_LABEL:;
 /* method parser_prod#AIntrudeVisibility#init_aintrudevisibility for (self: AIntrudeVisibility, nullable TKwintrude) */
 void nit__parser_prod___AIntrudeVisibility___init_aintrudevisibility(val* self, val* p0) {
 val* var_n_kwintrude /* var n_kwintrude: nullable TKwintrude */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AIntrudeVisibility> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwintrude = p0;
 if (unlikely(var_n_kwintrude == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 359);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AIntrudeVisibility___n_kwintrude].val = var_n_kwintrude; /* _n_kwintrude on <self:AIntrudeVisibility> */
 if (var_n_kwintrude == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 360);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwintrude,self) on <var_n_kwintrude:nullable TKwintrude> */
 if (unlikely(var_n_kwintrude == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwintrude->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwintrude:nullable TKwintrude> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -2286,7 +2303,7 @@ var = self->attrs[COLOR_nit__parser_nodes__AIntrudeVisibility___n_kwintrude].val
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwintrude");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 365);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwintrude> */
@@ -2321,7 +2338,7 @@ if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwintrude", var_class_name);
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 366);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AIntrudeVisibility___n_kwintrude_61d(self, var_new_child); /* Direct call parser_prod#AIntrudeVisibility#n_kwintrude= on <self:AIntrudeVisibility>*/
@@ -2353,90 +2370,91 @@ var = self->attrs[COLOR_nit__parser_nodes__AIntrudeVisibility___n_kwintrude].val
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwintrude");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 380);
-show_backtrace(1);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
 RET_LABEL:;
 }
-/* method parser_prod#AStdClassdef#init_astdclassdef for (self: AStdClassdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable AClasskind, nullable TClassid, Collection[Object], nullable AAnnotations, nullable AExternCodeBlock, Collection[Object], Collection[Object], nullable TKwend) */
+/* method parser_prod#AStdClassdef#init_astdclassdef for (self: AStdClassdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable AClasskind, nullable TClassid, nullable TObra, Collection[Object], nullable TCbra, nullable AExternCodeBlock, Collection[Object], nullable TKwend) */
 void nit__parser_prod___AStdClassdef___init_astdclassdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9, val* p10) {
 val* var_n_doc /* var n_doc: nullable ADoc */;
 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
 val* var_n_classkind /* var n_classkind: nullable AClasskind */;
 val* var_n_id /* var n_id: nullable TClassid */;
+val* var_n_obra /* var n_obra: nullable TObra */;
 val* var_n_formaldefs /* var n_formaldefs: Collection[Object] */;
-val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
+val* var_n_cbra /* var n_cbra: nullable TCbra */;
 val* var_n_extern_code_block /* var n_extern_code_block: nullable AExternCodeBlock */;
-val* var_n_superclasses /* var n_superclasses: Collection[Object] */;
 val* var_n_propdefs /* var n_propdefs: Collection[Object] */;
 val* var_n_kwend /* var n_kwend: nullable TKwend */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-val* var7 /* : null */;
+short int var7 /* : Bool */;
 short int var8 /* : Bool */;
-short int var9 /* : Bool */;
+short int var10 /* : Bool */;
 short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var16 /* : null */;
-short int var17 /* : Bool */;
+short int var15 /* : Bool */;
+short int var16 /* : Bool */;
 short int var18 /* : Bool */;
-short int var20 /* : Bool */;
+short int var19 /* : Bool */;
 short int var21 /* : Bool */;
-val* var23 /* : ANodes[AFormaldef] */;
-val* var25 /* : ANodes[AFormaldef] */;
-val* var26 /* : null */;
-short int var27 /* : Bool */;
-short int var28 /* : Bool */;
+short int var22 /* : Bool */;
+short int var24 /* : Bool */;
+short int var25 /* : Bool */;
+val* var27 /* : ANodes[AFormaldef] */;
+val* var29 /* : ANodes[AFormaldef] */;
 short int var30 /* : Bool */;
 short int var31 /* : Bool */;
-val* var33 /* : null */;
+short int var33 /* : Bool */;
 short int var34 /* : Bool */;
-short int var35 /* : Bool */;
+short int var36 /* : Bool */;
 short int var37 /* : Bool */;
-short int var38 /* : Bool */;
-val* var40 /* : ANodes[ASuperclass] */;
-val* var42 /* : ANodes[ASuperclass] */;
-val* var43 /* : ANodes[APropdef] */;
-val* var45 /* : ANodes[APropdef] */;
+short int var39 /* : Bool */;
+short int var40 /* : Bool */;
+val* var42 /* : ANodes[APropdef] */;
+val* var44 /* : ANodes[APropdef] */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AStdClassdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_doc = p0;
 var_n_kwredef = p1;
 var_n_visibility = p2;
 var_n_classkind = p3;
 var_n_id = p4;
-var_n_formaldefs = p5;
-var_n_annotations = p6;
-var_n_extern_code_block = p7;
-var_n_superclasses = p8;
+var_n_obra = p5;
+var_n_formaldefs = p6;
+var_n_cbra = p7;
+var_n_extern_code_block = p8;
 var_n_propdefs = p9;
 var_n_kwend = p10;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AStdClassdef> */
-var = NULL;
 if (var_n_doc == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
 var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
@@ -2446,30 +2464,29 @@ RET_LABEL6:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AStdClassdef> */
-var7 = NULL;
 if (var_n_kwredef == NULL) {
-var8 = 0; /* is null */
+var7 = 0; /* is null */
 } else {
-var8 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var7) on <var_n_kwredef:nullable TKwredef> */
-var_other = var7;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var11 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var8 = var9;
+var7 = var8;
 }
-if (var8){
+if (var7){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-RET_LABEL13:(void)0;
+RET_LABEL12:(void)0;
 }
 }
 } else {
@@ -2477,196 +2494,206 @@ RET_LABEL13:(void)0;
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 402);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AStdClassdef> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 403);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL14:(void)0;
+RET_LABEL13:(void)0;
 }
 }
 if (unlikely(var_n_classkind == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 404);
-show_backtrace(1);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_classkind].val = var_n_classkind; /* _n_classkind on <self:AStdClassdef> */
 if (var_n_classkind == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 405);
-show_backtrace(1);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_classkind,self) on <var_n_classkind:nullable AClasskind> */
 if (unlikely(var_n_classkind == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_classkind->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_classkind:nullable AClasskind> */
-RET_LABEL15:(void)0;
+RET_LABEL14:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_id].val = var_n_id; /* _n_id on <self:AStdClassdef> */
-var16 = NULL;
 if (var_n_id == NULL) {
-var17 = 0; /* is null */
+var15 = 0; /* is null */
 } else {
-var17 = 1; /* arg is null and recv is not */
+var15 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_id,var16) on <var_n_id:nullable TClassid> */
-var_other = var16;
+{ /* Inline kernel#Object#!= (var_n_id,((val*)NULL)) on <var_n_id:nullable TClassid> */
+var_other = ((val*)NULL);
 {
-var20 = ((short int (*)(val* self, val* p0))(var_n_id->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TClassid(TClassid)>*/;
+var18 = ((short int(*)(val* self, val* p0))(var_n_id->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_id, var_other); /* == on <var_n_id:nullable TClassid(TClassid)>*/
 }
-var21 = !var20;
-var18 = var21;
-goto RET_LABEL19;
-RET_LABEL19:(void)0;
+var19 = !var18;
+var16 = var19;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
 }
-var17 = var18;
+var15 = var16;
 }
-if (var17){
+if (var15){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid(TClassid)> */
 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid(TClassid)> */
-RET_LABEL22:(void)0;
+RET_LABEL20:(void)0;
 }
 }
 } else {
 }
-{
-{ /* Inline parser_nodes#AStdClassdef#n_formaldefs (self) on <self:AStdClassdef> */
-var25 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
-if (unlikely(var25 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1027);
-show_backtrace(1);
+self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_obra].val = var_n_obra; /* _n_obra on <self:AStdClassdef> */
+if (var_n_obra == NULL) {
+var21 = 0; /* is null */
+} else {
+var21 = 1; /* arg is null and recv is not */
 }
-var23 = var25;
-RET_LABEL24:(void)0;
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_obra,((val*)NULL)) on <var_n_obra:nullable TObra> */
+var_other = ((val*)NULL);
+{
+var24 = ((short int(*)(val* self, val* p0))(var_n_obra->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_obra, var_other); /* == on <var_n_obra:nullable TObra(TObra)>*/
 }
+var25 = !var24;
+var22 = var25;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
 }
+var21 = var22;
+}
+if (var21){
 {
-nit___nit__ANodes___unsafe_add_all(var23, var_n_formaldefs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var23:ANodes[AFormaldef]>*/
+{ /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra(TObra)> */
+var_n_obra->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra(TObra)> */
+RET_LABEL26:(void)0;
+}
 }
-self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AStdClassdef> */
-var26 = NULL;
-if (var_n_annotations == NULL) {
-var27 = 0; /* is null */
 } else {
-var27 = 1; /* arg is null and recv is not */
 }
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var26) on <var_n_annotations:nullable AAnnotations> */
-var_other = var26;
 {
-var30 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+{ /* Inline parser_nodes#AStdClassdef#n_formaldefs (self) on <self:AStdClassdef> */
+var29 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1207);
+fatal_exit(1);
 }
-var31 = !var30;
-var28 = var31;
-goto RET_LABEL29;
-RET_LABEL29:(void)0;
+var27 = var29;
+RET_LABEL28:(void)0;
 }
-var27 = var28;
 }
-if (var27){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+nit___nit__ANodes___unsafe_add_all(var27, var_n_formaldefs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var27:ANodes[AFormaldef]>*/
+}
+self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_cbra].val = var_n_cbra; /* _n_cbra on <self:AStdClassdef> */
+if (var_n_cbra == NULL) {
+var30 = 0; /* is null */
+} else {
+var30 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_cbra,((val*)NULL)) on <var_n_cbra:nullable TCbra> */
+var_other = ((val*)NULL);
+{
+var33 = ((short int(*)(val* self, val* p0))(var_n_cbra->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_cbra, var_other); /* == on <var_n_cbra:nullable TCbra(TCbra)>*/
+}
+var34 = !var33;
+var31 = var34;
+goto RET_LABEL32;
 RET_LABEL32:(void)0;
 }
+var30 = var31;
+}
+if (var30){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra(TCbra)> */
+var_n_cbra->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra(TCbra)> */
+RET_LABEL35:(void)0;
+}
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val = var_n_extern_code_block; /* _n_extern_code_block on <self:AStdClassdef> */
-var33 = NULL;
 if (var_n_extern_code_block == NULL) {
-var34 = 0; /* is null */
+var36 = 0; /* is null */
 } else {
-var34 = 1; /* arg is null and recv is not */
+var36 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_extern_code_block,var33) on <var_n_extern_code_block:nullable AExternCodeBlock> */
-var_other = var33;
+{ /* Inline kernel#Object#!= (var_n_extern_code_block,((val*)NULL)) on <var_n_extern_code_block:nullable AExternCodeBlock> */
+var_other = ((val*)NULL);
 {
-var37 = ((short int (*)(val* self, val* p0))(var_n_extern_code_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_code_block, var_other) /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
+var39 = ((short int(*)(val* self, val* p0))(var_n_extern_code_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_code_block, var_other); /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/
 }
-var38 = !var37;
-var35 = var38;
-goto RET_LABEL36;
-RET_LABEL36:(void)0;
+var40 = !var39;
+var37 = var40;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
 }
-var34 = var35;
+var36 = var37;
 }
-if (var34){
+if (var36){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_block,self) on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
 var_n_extern_code_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
-RET_LABEL39:(void)0;
-}
-}
-} else {
-}
-{
-{ /* Inline parser_nodes#AStdClassdef#n_superclasses (self) on <self:AStdClassdef> */
-var42 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_superclasses].val; /* _n_superclasses on <self:AStdClassdef> */
-if (unlikely(var42 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1033);
-show_backtrace(1);
-}
-var40 = var42;
 RET_LABEL41:(void)0;
 }
 }
-{
-nit___nit__ANodes___unsafe_add_all(var40, var_n_superclasses); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var40:ANodes[ASuperclass]>*/
+} else {
 }
 {
 { /* Inline parser_nodes#AClassdef#n_propdefs (self) on <self:AStdClassdef> */
-var45 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
-if (unlikely(var45 == NULL)) {
+var44 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
+if (unlikely(var44 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
-var43 = var45;
-RET_LABEL44:(void)0;
+var42 = var44;
+RET_LABEL43:(void)0;
 }
 }
 {
-nit___nit__ANodes___unsafe_add_all(var43, var_n_propdefs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var43:ANodes[APropdef]>*/
+nit___nit__ANodes___unsafe_add_all(var42, var_n_propdefs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var42:ANodes[APropdef]>*/
 }
 if (unlikely(var_n_kwend == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 415);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 416);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_kwend].val = var_n_kwend; /* _n_kwend on <self:AStdClassdef> */
 if (var_n_kwend == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 416);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 417);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend> */
 if (unlikely(var_n_kwend == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwend->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend> */
-RET_LABEL46:(void)0;
+RET_LABEL45:(void)0;
 }
 }
 RET_LABEL:;
@@ -2720,19 +2747,19 @@ short int var47 /* : Bool */;
 int cltype48;
 int idtype49;
 const char* var_class_name50;
-val* var51 /* : ANodes[AFormaldef] */;
-val* var53 /* : ANodes[AFormaldef] */;
-short int var54 /* : Bool */;
-val* var55 /* : nullable AAnnotations */;
-short int var56 /* : Bool */;
+val* var51 /* : nullable TObra */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var55 /* : Bool */;
 short int var57 /* : Bool */;
-short int var59 /* : Bool */;
-short int var61 /* : Bool */;
-short int var62 /* : Bool */;
-int cltype63;
-int idtype64;
-const char* var_class_name65;
-val* var66 /* : nullable AExternCodeBlock */;
+short int var58 /* : Bool */;
+int cltype59;
+int idtype60;
+const char* var_class_name61;
+val* var62 /* : ANodes[AFormaldef] */;
+val* var64 /* : ANodes[AFormaldef] */;
+short int var65 /* : Bool */;
+val* var66 /* : nullable TCbra */;
 short int var67 /* : Bool */;
 short int var68 /* : Bool */;
 short int var70 /* : Bool */;
@@ -2741,20 +2768,26 @@ short int var73 /* : Bool */;
 int cltype74;
 int idtype75;
 const char* var_class_name76;
-val* var77 /* : ANodes[ASuperclass] */;
-val* var79 /* : ANodes[ASuperclass] */;
-short int var80 /* : Bool */;
-val* var81 /* : ANodes[APropdef] */;
-val* var83 /* : ANodes[APropdef] */;
+val* var77 /* : nullable AExternCodeBlock */;
+short int var78 /* : Bool */;
+short int var79 /* : Bool */;
+short int var81 /* : Bool */;
+short int var83 /* : Bool */;
 short int var84 /* : Bool */;
-val* var85 /* : TKwend */;
-short int var86 /* : Bool */;
-short int var88 /* : Bool */;
-short int var90 /* : Bool */;
+int cltype85;
+int idtype86;
+const char* var_class_name87;
+val* var88 /* : ANodes[APropdef] */;
+val* var90 /* : ANodes[APropdef] */;
 short int var91 /* : Bool */;
-int cltype92;
-int idtype93;
-const char* var_class_name94;
+val* var92 /* : TKwend */;
+short int var93 /* : Bool */;
+short int var95 /* : Bool */;
+short int var97 /* : Bool */;
+short int var98 /* : Bool */;
+int cltype99;
+int idtype100;
+const char* var_class_name101;
 var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AStdClassdef> */
@@ -2793,8 +2826,8 @@ var7 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 422);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 423);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_doc= on <self:AStdClassdef>*/
@@ -2838,8 +2871,8 @@ var15 = var_new_child->type->type_table[cltype16] == idtype17;
 if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 426);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 427);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_kwredef= on <self:AStdClassdef>*/
@@ -2883,8 +2916,8 @@ var26 = var_new_child->type->type_table[cltype27] == idtype28;
 if (unlikely(!var26)) {
 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 430);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 431);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_visibility= on <self:AStdClassdef>*/
@@ -2895,8 +2928,8 @@ goto RET_LABEL;
 var30 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_classkind].val; /* _n_classkind on <self:AStdClassdef> */
 if (unlikely(var30 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classkind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 433);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 434);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AClasskind> */
@@ -2930,8 +2963,8 @@ var36 = var_new_child->type->type_table[cltype37] == idtype38;
 if (unlikely(!var36)) {
 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClasskind", var_class_name39);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 434);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 435);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___n_classkind_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_classkind= on <self:AStdClassdef>*/
@@ -2975,8 +3008,8 @@ var47 = var_new_child->type->type_table[cltype48] == idtype49;
 if (unlikely(!var47)) {
 var_class_name50 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TClassid", var_class_name50);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 438);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 439);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___n_id_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_id= on <self:AStdClassdef>*/
@@ -2984,78 +3017,78 @@ nit__parser_prod___AStdClassdef___n_id_61d(self, var_new_child); /* Direct call
 goto RET_LABEL;
 } else {
 }
+var51 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_obra].val; /* _n_obra on <self:AStdClassdef> */
+if (var51 == NULL) {
+var52 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var51,var_old_child) on <var51:nullable TObra> */
+var_other = var_old_child;
 {
-{ /* Inline parser_nodes#AStdClassdef#n_formaldefs (self) on <self:AStdClassdef> */
-var53 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
-if (unlikely(var53 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1027);
-show_backtrace(1);
+{ /* Inline kernel#Object#is_same_instance (var51,var_other) on <var51:nullable TObra(TObra)> */
+var57 = var51 == var_other;
+var55 = var57;
+goto RET_LABEL56;
+RET_LABEL56:(void)0;
 }
-var51 = var53;
-RET_LABEL52:(void)0;
 }
+var53 = var55;
+goto RET_LABEL54;
+RET_LABEL54:(void)0;
 }
-{
-var54 = nit___nit__ANodes___replace_child(var51, var_old_child, var_new_child);
+var52 = var53;
 }
-if (var54){
-goto RET_LABEL;
+if (var52){
+/* <var_new_child:nullable ANode> isa nullable TObra */
+cltype59 = type_nullable__nit__TObra.color;
+idtype60 = type_nullable__nit__TObra.id;
+if(var_new_child == NULL) {
+var58 = 1;
 } else {
-}
-var55 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStdClassdef> */
-if (var55 == NULL) {
-var56 = 0; /* <var_old_child:ANode> cannot be null */
+if(cltype59 >= var_new_child->type->table_size) {
+var58 = 0;
 } else {
-{ /* Inline kernel#Object#== (var55,var_old_child) on <var55:nullable AAnnotations> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var55,var_other) on <var55:nullable AAnnotations(AAnnotations)> */
-var61 = var55 == var_other;
-var59 = var61;
-goto RET_LABEL60;
-RET_LABEL60:(void)0;
+var58 = var_new_child->type->type_table[cltype59] == idtype60;
 }
 }
-var57 = var59;
-goto RET_LABEL58;
-RET_LABEL58:(void)0;
+if (unlikely(!var58)) {
+var_class_name61 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TObra", var_class_name61);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 443);
+fatal_exit(1);
 }
-var56 = var57;
+{
+nit__parser_prod___AStdClassdef___n_obra_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_obra= on <self:AStdClassdef>*/
 }
-if (var56){
-/* <var_new_child:nullable ANode> isa nullable AAnnotations */
-cltype63 = type_nullable__nit__AAnnotations.color;
-idtype64 = type_nullable__nit__AAnnotations.id;
-if(var_new_child == NULL) {
-var62 = 1;
-} else {
-if(cltype63 >= var_new_child->type->table_size) {
-var62 = 0;
+goto RET_LABEL;
 } else {
-var62 = var_new_child->type->type_table[cltype63] == idtype64;
 }
+{
+{ /* Inline parser_nodes#AStdClassdef#n_formaldefs (self) on <self:AStdClassdef> */
+var64 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
+if (unlikely(var64 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1207);
+fatal_exit(1);
+}
+var62 = var64;
+RET_LABEL63:(void)0;
 }
-if (unlikely(!var62)) {
-var_class_name65 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name65);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 443);
-show_backtrace(1);
 }
 {
-nit__parser_prod___AStdClassdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_annotations= on <self:AStdClassdef>*/
+var65 = nit___nit__ANodes___replace_child(var62, var_old_child, var_new_child);
 }
+if (var65){
 goto RET_LABEL;
 } else {
 }
-var66 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AStdClassdef> */
+var66 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_cbra].val; /* _n_cbra on <self:AStdClassdef> */
 if (var66 == NULL) {
 var67 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-{ /* Inline kernel#Object#== (var66,var_old_child) on <var66:nullable AExternCodeBlock> */
+{ /* Inline kernel#Object#== (var66,var_old_child) on <var66:nullable TCbra> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var66,var_other) on <var66:nullable AExternCodeBlock(AExternCodeBlock)> */
+{ /* Inline kernel#Object#is_same_instance (var66,var_other) on <var66:nullable TCbra(TCbra)> */
 var72 = var66 == var_other;
 var70 = var72;
 goto RET_LABEL71;
@@ -3069,9 +3102,9 @@ RET_LABEL69:(void)0;
 var67 = var68;
 }
 if (var67){
-/* <var_new_child:nullable ANode> isa nullable AExternCodeBlock */
-cltype74 = type_nullable__nit__AExternCodeBlock.color;
-idtype75 = type_nullable__nit__AExternCodeBlock.id;
+/* <var_new_child:nullable ANode> isa nullable TCbra */
+cltype74 = type_nullable__nit__TCbra.color;
+idtype75 = type_nullable__nit__TCbra.id;
 if(var_new_child == NULL) {
 var73 = 1;
 } else {
@@ -3083,94 +3116,120 @@ var73 = var_new_child->type->type_table[cltype74] == idtype75;
 }
 if (unlikely(!var73)) {
 var_class_name76 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCodeBlock", var_class_name76);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 447);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCbra", var_class_name76);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 448);
+fatal_exit(1);
 }
 {
-nit__parser_prod___AStdClassdef___n_extern_code_block_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_extern_code_block= on <self:AStdClassdef>*/
+nit__parser_prod___AStdClassdef___n_cbra_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_cbra= on <self:AStdClassdef>*/
 }
 goto RET_LABEL;
 } else {
 }
+var77 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AStdClassdef> */
+if (var77 == NULL) {
+var78 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var77,var_old_child) on <var77:nullable AExternCodeBlock> */
+var_other = var_old_child;
 {
-{ /* Inline parser_nodes#AStdClassdef#n_superclasses (self) on <self:AStdClassdef> */
-var79 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_superclasses].val; /* _n_superclasses on <self:AStdClassdef> */
-if (unlikely(var79 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1033);
-show_backtrace(1);
+{ /* Inline kernel#Object#is_same_instance (var77,var_other) on <var77:nullable AExternCodeBlock(AExternCodeBlock)> */
+var83 = var77 == var_other;
+var81 = var83;
+goto RET_LABEL82;
+RET_LABEL82:(void)0;
+}
+}
+var79 = var81;
+goto RET_LABEL80;
+RET_LABEL80:(void)0;
+}
+var78 = var79;
 }
-var77 = var79;
-RET_LABEL78:(void)0;
+if (var78){
+/* <var_new_child:nullable ANode> isa nullable AExternCodeBlock */
+cltype85 = type_nullable__nit__AExternCodeBlock.color;
+idtype86 = type_nullable__nit__AExternCodeBlock.id;
+if(var_new_child == NULL) {
+var84 = 1;
+} else {
+if(cltype85 >= var_new_child->type->table_size) {
+var84 = 0;
+} else {
+var84 = var_new_child->type->type_table[cltype85] == idtype86;
 }
 }
+if (unlikely(!var84)) {
+var_class_name87 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCodeBlock", var_class_name87);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 452);
+fatal_exit(1);
+}
 {
-var80 = nit___nit__ANodes___replace_child(var77, var_old_child, var_new_child);
+nit__parser_prod___AStdClassdef___n_extern_code_block_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_extern_code_block= on <self:AStdClassdef>*/
 }
-if (var80){
 goto RET_LABEL;
 } else {
 }
 {
 { /* Inline parser_nodes#AClassdef#n_propdefs (self) on <self:AStdClassdef> */
-var83 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
-if (unlikely(var83 == NULL)) {
+var90 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
+if (unlikely(var90 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
-var81 = var83;
-RET_LABEL82:(void)0;
+var88 = var90;
+RET_LABEL89:(void)0;
 }
 }
 {
-var84 = nit___nit__ANodes___replace_child(var81, var_old_child, var_new_child);
+var91 = nit___nit__ANodes___replace_child(var88, var_old_child, var_new_child);
 }
-if (var84){
+if (var91){
 goto RET_LABEL;
 } else {
 }
-var85 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_kwend].val; /* _n_kwend on <self:AStdClassdef> */
-if (unlikely(var85 == NULL)) {
+var92 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_kwend].val; /* _n_kwend on <self:AStdClassdef> */
+if (unlikely(var92 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwend");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 452);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 456);
+fatal_exit(1);
 }
 {
-{ /* Inline kernel#Object#== (var85,var_old_child) on <var85:TKwend> */
+{ /* Inline kernel#Object#== (var92,var_old_child) on <var92:TKwend> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var85,var_other) on <var85:TKwend> */
-var90 = var85 == var_other;
-var88 = var90;
-goto RET_LABEL89;
-RET_LABEL89:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var92,var_other) on <var92:TKwend> */
+var97 = var92 == var_other;
+var95 = var97;
+goto RET_LABEL96;
+RET_LABEL96:(void)0;
 }
 }
-var86 = var88;
-goto RET_LABEL87;
-RET_LABEL87:(void)0;
+var93 = var95;
+goto RET_LABEL94;
+RET_LABEL94:(void)0;
 }
 }
-if (var86){
+if (var93){
 /* <var_new_child:nullable ANode> isa TKwend */
-cltype92 = type_nit__TKwend.color;
-idtype93 = type_nit__TKwend.id;
+cltype99 = type_nit__TKwend.color;
+idtype100 = type_nit__TKwend.id;
 if(var_new_child == NULL) {
-var91 = 0;
+var98 = 0;
 } else {
-if(cltype92 >= var_new_child->type->table_size) {
-var91 = 0;
+if(cltype99 >= var_new_child->type->table_size) {
+var98 = 0;
 } else {
-var91 = var_new_child->type->type_table[cltype92] == idtype93;
+var98 = var_new_child->type->type_table[cltype99] == idtype100;
 }
 }
-if (unlikely(!var91)) {
-var_class_name94 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwend", var_class_name94);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 453);
-show_backtrace(1);
+if (unlikely(!var98)) {
+var_class_name101 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwend", var_class_name101);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 457);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AStdClassdef___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#AStdClassdef#n_kwend= on <self:AStdClassdef>*/
@@ -3183,38 +3242,36 @@ RET_LABEL:;
 /* method parser_prod#AStdClassdef#n_doc= for (self: AStdClassdef, nullable ADoc) */
 void nit__parser_prod___AStdClassdef___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
 val* var_node /* var node: nullable ADoc */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AStdClassdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -3224,38 +3281,36 @@ RET_LABEL:;
 /* method parser_prod#AStdClassdef#n_kwredef= for (self: AStdClassdef, nullable TKwredef) */
 void nit__parser_prod___AStdClassdef___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AStdClassdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -3269,14 +3324,14 @@ var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:AStdClassdef> */
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 471);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 475);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
 RET_LABEL1:(void)0;
@@ -3300,79 +3355,114 @@ RET_LABEL:;
 /* method parser_prod#AStdClassdef#n_id= for (self: AStdClassdef, nullable TClassid) */
 void nit__parser_prod___AStdClassdef___n_id_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TClassid */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_id].val = var_node; /* _n_id on <self:AStdClassdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TClassid> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TClassid> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TClassid(TClassid)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TClassid(TClassid)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TClassid(TClassid)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TClassid(TClassid)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
 }
 RET_LABEL:;
 }
-/* method parser_prod#AStdClassdef#n_annotations= for (self: AStdClassdef, nullable AAnnotations) */
-void nit__parser_prod___AStdClassdef___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
-val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+/* method parser_prod#AStdClassdef#n_obra= for (self: AStdClassdef, nullable TObra) */
+void nit__parser_prod___AStdClassdef___n_obra_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TObra */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AStdClassdef> */
-var = NULL;
+self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_obra].val = var_node; /* _n_obra on <self:AStdClassdef> */
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TObra> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TObra(TObra)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TObra(TObra)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TObra(TObra)> */
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AStdClassdef#n_cbra= for (self: AStdClassdef, nullable TCbra) */
+void nit__parser_prod___AStdClassdef___n_cbra_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TCbra */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_cbra].val = var_node; /* _n_cbra on <self:AStdClassdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TCbra> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TCbra(TCbra)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCbra(TCbra)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCbra(TCbra)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -3382,38 +3472,36 @@ RET_LABEL:;
 /* method parser_prod#AStdClassdef#n_extern_code_block= for (self: AStdClassdef, nullable AExternCodeBlock) */
 void nit__parser_prod___AStdClassdef___n_extern_code_block_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExternCodeBlock */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val = var_node; /* _n_extern_code_block on <self:AStdClassdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCodeBlock> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExternCodeBlock> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -3441,15 +3529,14 @@ val* var1 /* : nullable TKwredef */;
 val* var2 /* : nullable AVisibility */;
 val* var3 /* : AClasskind */;
 val* var4 /* : nullable TClassid */;
-val* var5 /* : ANodes[AFormaldef] */;
-val* var7 /* : ANodes[AFormaldef] */;
-val* var8 /* : nullable AAnnotations */;
-val* var9 /* : nullable AExternCodeBlock */;
-val* var10 /* : ANodes[ASuperclass] */;
-val* var12 /* : ANodes[ASuperclass] */;
+val* var5 /* : nullable TObra */;
+val* var6 /* : ANodes[AFormaldef] */;
+val* var8 /* : ANodes[AFormaldef] */;
+val* var9 /* : nullable TCbra */;
+val* var10 /* : nullable AExternCodeBlock */;
+val* var11 /* : ANodes[APropdef] */;
 val* var13 /* : ANodes[APropdef] */;
-val* var15 /* : ANodes[APropdef] */;
-val* var16 /* : TKwend */;
+val* var14 /* : TKwend */;
 var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AStdClassdef> */
 {
@@ -3466,8 +3553,8 @@ nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visit
 var3 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_classkind].val; /* _n_classkind on <self:AStdClassdef> */
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classkind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 505);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 514);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -3476,67 +3563,56 @@ var4 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_id].val; /* _n_id o
 {
 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
+var5 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_obra].val; /* _n_obra on <self:AStdClassdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
 {
 { /* Inline parser_nodes#AStdClassdef#n_formaldefs (self) on <self:AStdClassdef> */
-var7 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
-if (unlikely(var7 == NULL)) {
+var8 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_formaldefs].val; /* _n_formaldefs on <self:AStdClassdef> */
+if (unlikely(var8 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_formaldefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1027);
-show_backtrace(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1207);
+fatal_exit(1);
 }
+var6 = var8;
+RET_LABEL7:(void)0;
 }
-{
-nit___nit__ANodes___visit_all(var5, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var5:ANodes[AFormaldef]>*/
 }
-var8 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStdClassdef> */
 {
-nit___nit__Visitor___enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+nit___nit__ANodes___visit_all(var6, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var6:ANodes[AFormaldef]>*/
 }
-var9 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AStdClassdef> */
+var9 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_cbra].val; /* _n_cbra on <self:AStdClassdef> */
 {
 nit___nit__Visitor___enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
+var10 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AStdClassdef> */
 {
-{ /* Inline parser_nodes#AStdClassdef#n_superclasses (self) on <self:AStdClassdef> */
-var12 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_superclasses].val; /* _n_superclasses on <self:AStdClassdef> */
-if (unlikely(var12 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_superclasses");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1033);
-show_backtrace(1);
-}
-var10 = var12;
-RET_LABEL11:(void)0;
-}
-}
-{
-nit___nit__ANodes___visit_all(var10, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var10:ANodes[ASuperclass]>*/
+nit___nit__Visitor___enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
 {
 { /* Inline parser_nodes#AClassdef#n_propdefs (self) on <self:AStdClassdef> */
-var15 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
-if (unlikely(var15 == NULL)) {
+var13 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AStdClassdef> */
+if (unlikely(var13 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
-var13 = var15;
-RET_LABEL14:(void)0;
+var11 = var13;
+RET_LABEL12:(void)0;
 }
 }
 {
-nit___nit__ANodes___visit_all(var13, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var13:ANodes[APropdef]>*/
+nit___nit__ANodes___visit_all(var11, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var11:ANodes[APropdef]>*/
 }
-var16 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_kwend].val; /* _n_kwend on <self:AStdClassdef> */
-if (unlikely(var16 == NULL)) {
+var14 = self->attrs[COLOR_nit__parser_nodes__AStdClassdef___n_kwend].val; /* _n_kwend on <self:AStdClassdef> */
+if (unlikely(var14 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwend");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 512);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 521);
+fatal_exit(1);
 }
 {
-nit___nit__Visitor___enter_visit(var_v, var16); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+nit___nit__Visitor___enter_visit(var_v, var14); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
 RET_LABEL:;
 }
@@ -3544,18 +3620,23 @@ RET_LABEL:;
 void nit__parser_prod___ATopClassdef___init_atopclassdef(val* self, val* p0) {
 val* var_n_propdefs /* var n_propdefs: Collection[Object] */;
 val* var /* : ANodes[APropdef] */;
-val* var2 /* : ANodes[APropdef] */;
+val* var3 /* : ANodes[APropdef] */;
+{
+{ /* Inline kernel#Object#init (self) on <self:ATopClassdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_propdefs = p0;
 {
 { /* Inline parser_nodes#AClassdef#n_propdefs (self) on <self:ATopClassdef> */
-var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:ATopClassdef> */
-if (unlikely(var2 == NULL)) {
+var3 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:ATopClassdef> */
+if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
-var = var2;
-RET_LABEL1:(void)0;
+var = var3;
+RET_LABEL2:(void)0;
 }
 }
 {
@@ -3577,8 +3658,8 @@ var_new_child = p1;
 var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:ATopClassdef> */
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
 var = var2;
 RET_LABEL1:(void)0;
@@ -3604,8 +3685,8 @@ var_v = p0;
 var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:ATopClassdef> */
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
 var = var2;
 RET_LABEL1:(void)0;
@@ -3620,18 +3701,23 @@ RET_LABEL:;
 void nit__parser_prod___AMainClassdef___init_amainclassdef(val* self, val* p0) {
 val* var_n_propdefs /* var n_propdefs: Collection[Object] */;
 val* var /* : ANodes[APropdef] */;
-val* var2 /* : ANodes[APropdef] */;
+val* var3 /* : ANodes[APropdef] */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AMainClassdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_propdefs = p0;
 {
 { /* Inline parser_nodes#AClassdef#n_propdefs (self) on <self:AMainClassdef> */
-var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AMainClassdef> */
-if (unlikely(var2 == NULL)) {
+var3 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AMainClassdef> */
+if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
-var = var2;
-RET_LABEL1:(void)0;
+var = var3;
+RET_LABEL2:(void)0;
 }
 }
 {
@@ -3653,8 +3739,8 @@ var_new_child = p1;
 var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AMainClassdef> */
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
 var = var2;
 RET_LABEL1:(void)0;
@@ -3680,8 +3766,8 @@ var_v = p0;
 var2 = self->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <self:AMainClassdef> */
 if (unlikely(var2 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1189);
+fatal_exit(1);
 }
 var = var2;
 RET_LABEL1:(void)0;
@@ -3695,26 +3781,31 @@ RET_LABEL:;
 /* method parser_prod#AConcreteClasskind#init_aconcreteclasskind for (self: AConcreteClasskind, nullable TKwclass) */
 void nit__parser_prod___AConcreteClasskind___init_aconcreteclasskind(val* self, val* p0) {
 val* var_n_kwclass /* var n_kwclass: nullable TKwclass */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AConcreteClasskind> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwclass = p0;
 if (unlikely(var_n_kwclass == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 560);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 569);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AConcreteClasskind___n_kwclass].val = var_n_kwclass; /* _n_kwclass on <self:AConcreteClasskind> */
 if (var_n_kwclass == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 561);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 570);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwclass,self) on <var_n_kwclass:nullable TKwclass> */
 if (unlikely(var_n_kwclass == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwclass->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwclass:nullable TKwclass> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -3737,8 +3828,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AConcreteClasskind___n_kwclass].val; /* _n_kwclass on <self:AConcreteClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 566);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 575);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwclass> */
@@ -3772,8 +3863,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwclass", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 567);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 576);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AConcreteClasskind___n_kwclass_61d(self, var_new_child); /* Direct call parser_prod#AConcreteClasskind#n_kwclass= on <self:AConcreteClasskind>*/
@@ -3804,8 +3895,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AConcreteClasskind___n_kwclass].val; /* _n_kwclass on <self:AConcreteClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 581);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 590);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -3816,48 +3907,53 @@ RET_LABEL:;
 void nit__parser_prod___AAbstractClasskind___init_aabstractclasskind(val* self, val* p0, val* p1) {
 val* var_n_kwabstract /* var n_kwabstract: nullable TKwabstract */;
 val* var_n_kwclass /* var n_kwclass: nullable TKwclass */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AAbstractClasskind> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwabstract = p0;
 var_n_kwclass = p1;
 if (unlikely(var_n_kwabstract == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 590);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 599);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwabstract].val = var_n_kwabstract; /* _n_kwabstract on <self:AAbstractClasskind> */
 if (var_n_kwabstract == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 591);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 600);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwabstract,self) on <var_n_kwabstract:nullable TKwabstract> */
 if (unlikely(var_n_kwabstract == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwabstract->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwabstract:nullable TKwabstract> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 if (unlikely(var_n_kwclass == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 592);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 601);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwclass].val = var_n_kwclass; /* _n_kwclass on <self:AAbstractClasskind> */
 if (var_n_kwclass == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 593);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 602);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwclass,self) on <var_n_kwclass:nullable TKwclass> */
 if (unlikely(var_n_kwclass == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwclass->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwclass:nullable TKwclass> */
-RET_LABEL2:(void)0;
+RET_LABEL3:(void)0;
 }
 }
 RET_LABEL:;
@@ -3888,8 +3984,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwabstract].val; /* _n_kwabstract on <self:AAbstractClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabstract");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 598);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 607);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwabstract> */
@@ -3923,8 +4019,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwabstract", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 599);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 608);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAbstractClasskind___n_kwabstract_61d(self, var_new_child); /* Direct call parser_prod#AAbstractClasskind#n_kwabstract= on <self:AAbstractClasskind>*/
@@ -3935,8 +4031,8 @@ goto RET_LABEL;
 var7 = self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwclass].val; /* _n_kwclass on <self:AAbstractClasskind> */
 if (unlikely(var7 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 602);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 611);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwclass> */
@@ -3970,8 +4066,8 @@ var13 = var_new_child->type->type_table[cltype14] == idtype15;
 if (unlikely(!var13)) {
 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwclass", var_class_name16);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 603);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 612);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAbstractClasskind___n_kwclass_61d(self, var_new_child); /* Direct call parser_prod#AAbstractClasskind#n_kwclass= on <self:AAbstractClasskind>*/
@@ -4016,8 +4112,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwabstract].val; /* _n_kwabstract on <self:AAbstractClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabstract");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 622);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 631);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4025,8 +4121,8 @@ nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visito
 var1 = self->attrs[COLOR_nit__parser_nodes__AAbstractClasskind___n_kwclass].val; /* _n_kwclass on <self:AAbstractClasskind> */
 if (unlikely(var1 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 623);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 632);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4036,26 +4132,31 @@ RET_LABEL:;
 /* method parser_prod#AInterfaceClasskind#init_ainterfaceclasskind for (self: AInterfaceClasskind, nullable TKwinterface) */
 void nit__parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val* self, val* p0) {
 val* var_n_kwinterface /* var n_kwinterface: nullable TKwinterface */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AInterfaceClasskind> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwinterface = p0;
 if (unlikely(var_n_kwinterface == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 631);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 640);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AInterfaceClasskind___n_kwinterface].val = var_n_kwinterface; /* _n_kwinterface on <self:AInterfaceClasskind> */
 if (var_n_kwinterface == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 632);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 641);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwinterface,self) on <var_n_kwinterface:nullable TKwinterface> */
 if (unlikely(var_n_kwinterface == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwinterface->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwinterface:nullable TKwinterface> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -4078,8 +4179,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AInterfaceClasskind___n_kwinterface].val; /* _n_kwinterface on <self:AInterfaceClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinterface");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 637);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 646);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwinterface> */
@@ -4113,8 +4214,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwinterface", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 638);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 647);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AInterfaceClasskind___n_kwinterface_61d(self, var_new_child); /* Direct call parser_prod#AInterfaceClasskind#n_kwinterface= on <self:AInterfaceClasskind>*/
@@ -4145,8 +4246,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AInterfaceClasskind___n_kwinterface].val; /* _n_kwinterface on <self:AInterfaceClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinterface");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 652);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 661);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4156,26 +4257,31 @@ RET_LABEL:;
 /* method parser_prod#AEnumClasskind#init_aenumclasskind for (self: AEnumClasskind, nullable TKwenum) */
 void nit__parser_prod___AEnumClasskind___init_aenumclasskind(val* self, val* p0) {
 val* var_n_kwenum /* var n_kwenum: nullable TKwenum */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AEnumClasskind> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwenum = p0;
 if (unlikely(var_n_kwenum == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 660);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 669);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AEnumClasskind___n_kwenum].val = var_n_kwenum; /* _n_kwenum on <self:AEnumClasskind> */
 if (var_n_kwenum == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 661);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 670);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwenum,self) on <var_n_kwenum:nullable TKwenum> */
 if (unlikely(var_n_kwenum == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwenum->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwenum:nullable TKwenum> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
@@ -4198,8 +4304,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AEnumClasskind___n_kwenum].val; /* _n_kwenum on <self:AEnumClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwenum");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 666);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 675);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwenum> */
@@ -4233,8 +4339,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwenum", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 667);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 676);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AEnumClasskind___n_kwenum_61d(self, var_new_child); /* Direct call parser_prod#AEnumClasskind#n_kwenum= on <self:AEnumClasskind>*/
@@ -4265,8 +4371,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AEnumClasskind___n_kwenum].val; /* _n_kwenum on <self:AEnumClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwenum");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 681);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 690);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4277,56 +4383,59 @@ RET_LABEL:;
 void nit__parser_prod___AExternClasskind___init_aexternclasskind(val* self, val* p0, val* p1) {
 val* var_n_kwextern /* var n_kwextern: nullable TKwextern */;
 val* var_n_kwclass /* var n_kwclass: nullable TKwclass */;
-val* var /* : null */;
-short int var2 /* : Bool */;
+short int var /* : Bool */;
 short int var3 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var5 /* : Bool */;
 short int var6 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AExternClasskind> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwextern = p0;
 var_n_kwclass = p1;
 if (unlikely(var_n_kwextern == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 690);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 699);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AExternClasskind___n_kwextern].val = var_n_kwextern; /* _n_kwextern on <self:AExternClasskind> */
 if (var_n_kwextern == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 691);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 700);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwextern,self) on <var_n_kwextern:nullable TKwextern> */
 if (unlikely(var_n_kwextern == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwextern->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwextern:nullable TKwextern> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__AExternClasskind___n_kwclass].val = var_n_kwclass; /* _n_kwclass on <self:AExternClasskind> */
-var = NULL;
 if (var_n_kwclass == NULL) {
-var2 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var2 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwclass,var) on <var_n_kwclass:nullable TKwclass> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_kwclass,((val*)NULL)) on <var_n_kwclass:nullable TKwclass> */
+var_other = ((val*)NULL);
 {
-var5 = ((short int (*)(val* self, val* p0))(var_n_kwclass->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwclass, var_other) /* == on <var_n_kwclass:nullable TKwclass(TKwclass)>*/;
+var5 = ((short int(*)(val* self, val* p0))(var_n_kwclass->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwclass, var_other); /* == on <var_n_kwclass:nullable TKwclass(TKwclass)>*/
 }
 var6 = !var5;
 var3 = var6;
 goto RET_LABEL4;
 RET_LABEL4:(void)0;
 }
-var2 = var3;
+var = var3;
 }
-if (var2){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwclass,self) on <var_n_kwclass:nullable TKwclass(TKwclass)> */
 var_n_kwclass->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwclass:nullable TKwclass(TKwclass)> */
@@ -4364,8 +4473,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AExternClasskind___n_kwextern].val; /* _n_kwextern on <self:AExternClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwextern");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 698);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 707);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwextern> */
@@ -4399,8 +4508,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwextern", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 699);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 708);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AExternClasskind___n_kwextern_61d(self, var_new_child); /* Direct call parser_prod#AExternClasskind#n_kwextern= on <self:AExternClasskind>*/
@@ -4444,8 +4553,8 @@ var14 = var_new_child->type->type_table[cltype15] == idtype16;
 if (unlikely(!var14)) {
 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwclass", var_class_name17);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 703);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 712);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AExternClasskind___n_kwclass_61d(self, var_new_child); /* Direct call parser_prod#AExternClasskind#n_kwclass= on <self:AExternClasskind>*/
@@ -4471,38 +4580,36 @@ RET_LABEL:;
 /* method parser_prod#AExternClasskind#n_kwclass= for (self: AExternClasskind, nullable TKwclass) */
 void nit__parser_prod___AExternClasskind___n_kwclass_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwclass */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AExternClasskind___n_kwclass].val = var_node; /* _n_kwclass on <self:AExternClasskind> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwclass> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwclass> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwclass(TKwclass)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwclass(TKwclass)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwclass(TKwclass)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwclass(TKwclass)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -4518,8 +4625,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AExternClasskind___n_kwextern].val; /* _n_kwextern on <self:AExternClasskind> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwextern");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 722);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 731);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4535,62 +4642,64 @@ void nit__parser_prod___AFormaldef___init_aformaldef(val* self, val* p0, val* p1
 val* var_n_id /* var n_id: nullable TClassid */;
 val* var_n_type /* var n_type: nullable AType */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var /* : null */;
-short int var2 /* : Bool */;
+short int var /* : Bool */;
 short int var3 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var5 /* : Bool */;
 short int var6 /* : Bool */;
-val* var8 /* : null */;
+short int var8 /* : Bool */;
 short int var9 /* : Bool */;
-short int var10 /* : Bool */;
+short int var11 /* : Bool */;
 short int var12 /* : Bool */;
-short int var13 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AFormaldef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_id = p0;
 var_n_type = p1;
 var_n_annotations = p2;
 if (unlikely(var_n_id == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 733);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 742);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AFormaldef___n_id].val = var_n_id; /* _n_id on <self:AFormaldef> */
 if (var_n_id == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 734);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 743);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid> */
 if (unlikely(var_n_id == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid> */
-RET_LABEL1:(void)0;
+RET_LABEL2:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__AFormaldef___n_type].val = var_n_type; /* _n_type on <self:AFormaldef> */
-var = NULL;
 if (var_n_type == NULL) {
-var2 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var2 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_type,((val*)NULL)) on <var_n_type:nullable AType> */
+var_other = ((val*)NULL);
 {
-var5 = ((short int (*)(val* self, val* p0))(var_n_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
+var5 = ((short int(*)(val* self, val* p0))(var_n_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_type, var_other); /* == on <var_n_type:nullable AType(AType)>*/
 }
 var6 = !var5;
 var3 = var6;
 goto RET_LABEL4;
 RET_LABEL4:(void)0;
 }
-var2 = var3;
+var = var3;
 }
-if (var2){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
@@ -4600,30 +4709,29 @@ RET_LABEL7:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AFormaldef> */
-var8 = NULL;
 if (var_n_annotations == NULL) {
-var9 = 0; /* is null */
+var8 = 0; /* is null */
 } else {
-var9 = 1; /* arg is null and recv is not */
+var8 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var8) on <var_n_annotations:nullable AAnnotations> */
-var_other = var8;
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var12 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var11 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
-var13 = !var12;
-var10 = var13;
-goto RET_LABEL11;
-RET_LABEL11:(void)0;
+var12 = !var11;
+var9 = var12;
+goto RET_LABEL10;
+RET_LABEL10:(void)0;
 }
-var9 = var10;
+var8 = var9;
 }
-if (var9){
+if (var8){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL14:(void)0;
+RET_LABEL13:(void)0;
 }
 }
 } else {
@@ -4666,8 +4774,8 @@ var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__AFormaldef___n_id].val; /* _n_id on <self:AFormaldef> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 743);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 752);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var,var_old_child) on <var:TClassid> */
@@ -4701,8 +4809,8 @@ var6 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var6)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TClassid", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 744);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 753);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AFormaldef___n_id_61d(self, var_new_child); /* Direct call parser_prod#AFormaldef#n_id= on <self:AFormaldef>*/
@@ -4746,8 +4854,8 @@ var14 = var_new_child->type->type_table[cltype15] == idtype16;
 if (unlikely(!var14)) {
 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name17);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 748);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 757);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AFormaldef___n_type_61d(self, var_new_child); /* Direct call parser_prod#AFormaldef#n_type= on <self:AFormaldef>*/
@@ -4791,8 +4899,8 @@ var25 = var_new_child->type->type_table[cltype26] == idtype27;
 if (unlikely(!var25)) {
 var_class_name28 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name28);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 752);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 761);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AFormaldef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AFormaldef#n_annotations= on <self:AFormaldef>*/
@@ -4818,38 +4926,36 @@ RET_LABEL:;
 /* method parser_prod#AFormaldef#n_type= for (self: AFormaldef, nullable AType) */
 void nit__parser_prod___AFormaldef___n_type_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AType */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AFormaldef___n_type].val = var_node; /* _n_type on <self:AFormaldef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AType> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AType(AType)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -4859,38 +4965,36 @@ RET_LABEL:;
 /* method parser_prod#AFormaldef#n_annotations= for (self: AFormaldef, nullable AAnnotations) */
 void nit__parser_prod___AFormaldef___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AFormaldef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -4907,8 +5011,8 @@ var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__AFormaldef___n_id].val; /* _n_id on <self:AFormaldef> */
 if (unlikely(var == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 776);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 785);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -4923,688 +5027,425 @@ nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visit
 }
 RET_LABEL:;
 }
-/* method parser_prod#ASuperclass#init_asuperclass for (self: ASuperclass, nullable TKwsuper, nullable AType, nullable AAnnotations) */
-void nit__parser_prod___ASuperclass___init_asuperclass(val* self, val* p0, val* p1, val* p2) {
-val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
+/* method parser_prod#AAttrPropdef#init_aattrpropdef for (self: AAttrPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations, nullable TKwdo, nullable AExpr, nullable TKwend) */
+void nit__parser_prod___AAttrPropdef___init_aattrpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9, val* p10, val* p11) {
+val* var_n_doc /* var n_doc: nullable ADoc */;
+val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
+val* var_n_visibility /* var n_visibility: nullable AVisibility */;
+val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
+val* var_n_id2 /* var n_id2: nullable TId */;
 val* var_n_type /* var n_type: nullable AType */;
+val* var_n_assign /* var n_assign: nullable TAssign */;
+val* var_n_expr /* var n_expr: nullable AExpr */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
+val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
+val* var_n_block /* var n_block: nullable AExpr */;
+val* var_n_kwend /* var n_kwend: nullable TKwend */;
+short int var /* : Bool */;
+short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
-short int var6 /* : Bool */;
+short int var4 /* : Bool */;
+short int var5 /* : Bool */;
 short int var7 /* : Bool */;
-var_n_kwsuper = p0;
-var_n_type = p1;
-var_n_annotations = p2;
-if (unlikely(var_n_kwsuper == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 788);
-show_backtrace(1);
+short int var8 /* : Bool */;
+short int var10 /* : Bool */;
+short int var11 /* : Bool */;
+short int var16 /* : Bool */;
+short int var17 /* : Bool */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+short int var25 /* : Bool */;
+short int var26 /* : Bool */;
+short int var28 /* : Bool */;
+short int var29 /* : Bool */;
+short int var31 /* : Bool */;
+short int var32 /* : Bool */;
+short int var34 /* : Bool */;
+short int var35 /* : Bool */;
+short int var37 /* : Bool */;
+short int var38 /* : Bool */;
+short int var40 /* : Bool */;
+short int var41 /* : Bool */;
+short int var43 /* : Bool */;
+short int var44 /* : Bool */;
+short int var46 /* : Bool */;
+short int var47 /* : Bool */;
+short int var49 /* : Bool */;
+short int var50 /* : Bool */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var55 /* : Bool */;
+short int var56 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AAttrPropdef> */
+RET_LABEL1:(void)0;
 }
-self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperclass> */
-if (var_n_kwsuper == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 789);
-show_backtrace(1);
+}
+var_n_doc = p0;
+var_n_kwredef = p1;
+var_n_visibility = p2;
+var_n_kwvar = p3;
+var_n_id2 = p4;
+var_n_type = p5;
+var_n_assign = p6;
+var_n_expr = p7;
+var_n_annotations = p8;
+var_n_kwdo = p9;
+var_n_block = p10;
+var_n_kwend = p11;
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AAttrPropdef> */
+if (var_n_doc == NULL) {
+var = 0; /* is null */
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_kwsuper,self) on <var_n_kwsuper:nullable TKwsuper> */
-if (unlikely(var_n_kwsuper == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+var = 1; /* arg is null and recv is not */
 }
-var_n_kwsuper->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwsuper:nullable TKwsuper> */
-RET_LABEL1:(void)0;
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
+{
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
+var5 = !var4;
+var2 = var5;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
-if (unlikely(var_n_type == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 790);
-show_backtrace(1);
+var = var2;
 }
-self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_type].val = var_n_type; /* _n_type on <self:ASuperclass> */
-if (var_n_type == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 791);
-show_backtrace(1);
-} else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
-if (unlikely(var_n_type == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
+var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
+RET_LABEL6:(void)0;
 }
-var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
-RET_LABEL2:(void)0;
 }
+} else {
 }
-self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASuperclass> */
-var = NULL;
-if (var_n_annotations == NULL) {
-var3 = 0; /* is null */
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AAttrPropdef> */
+if (var_n_kwredef == NULL) {
+var7 = 0; /* is null */
 } else {
-var3 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var6 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-var7 = !var6;
-var4 = var7;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var3 = var4;
+var7 = var8;
 }
-if (var3){
+if (var7){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL8:(void)0;
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
+var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
+RET_LABEL12:(void)0;
 }
 }
 } else {
 }
-RET_LABEL:;
+if (unlikely(var_n_visibility == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 810);
+fatal_exit(1);
 }
-/* method parser_prod#ASuperclass#replace_child for (self: ASuperclass, ANode, nullable ANode) */
-void nit__parser_prod___ASuperclass___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TKwsuper */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-val* var7 /* : AType */;
-short int var8 /* : Bool */;
-short int var10 /* : Bool */;
-short int var12 /* : Bool */;
-short int var13 /* : Bool */;
-int cltype14;
-int idtype15;
-const char* var_class_name16;
-val* var17 /* : nullable AAnnotations */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
-short int var21 /* : Bool */;
-short int var23 /* : Bool */;
-short int var24 /* : Bool */;
-int cltype25;
-int idtype26;
-const char* var_class_name27;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_kwsuper].val; /* _n_kwsuper on <self:ASuperclass> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 798);
-show_backtrace(1);
-}
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TKwsuper> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwsuper> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AAttrPropdef> */
+if (var_n_visibility == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 811);
+fatal_exit(1);
+} else {
+{ /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
+if (unlikely(var_n_visibility == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
+var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
+RET_LABEL13:(void)0;
 }
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
 }
+if (unlikely(var_n_kwvar == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 812);
+fatal_exit(1);
 }
-if (var1){
-/* <var_new_child:nullable ANode> isa TKwsuper */
-cltype = type_nit__TKwsuper.color;
-idtype = type_nit__TKwsuper.id;
-if(var_new_child == NULL) {
-var6 = 0;
-} else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AAttrPropdef> */
+if (var_n_kwvar == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 813);
+fatal_exit(1);
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwvar,self) on <var_n_kwvar:nullable TKwvar> */
+if (unlikely(var_n_kwvar == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
+var_n_kwvar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwvar:nullable TKwvar> */
+RET_LABEL14:(void)0;
 }
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwsuper", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 799);
-show_backtrace(1);
 }
-{
-nit__parser_prod___ASuperclass___n_kwsuper_61d(self, var_new_child); /* Direct call parser_prod#ASuperclass#n_kwsuper= on <self:ASuperclass>*/
+if (unlikely(var_n_id2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 814);
+fatal_exit(1);
 }
-goto RET_LABEL;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_id2].val = var_n_id2; /* _n_id2 on <self:AAttrPropdef> */
+if (var_n_id2 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 815);
+fatal_exit(1);
 } else {
+{ /* Inline parser_nodes#ANode#parent= (var_n_id2,self) on <var_n_id2:nullable TId> */
+if (unlikely(var_n_id2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
-var7 = self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_type].val; /* _n_type on <self:ASuperclass> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 802);
-show_backtrace(1);
+var_n_id2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id2:nullable TId> */
+RET_LABEL15:(void)0;
 }
+}
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val = var_n_type; /* _n_type on <self:AAttrPropdef> */
+if (var_n_type == NULL) {
+var16 = 0; /* is null */
+} else {
+var16 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_type,((val*)NULL)) on <var_n_type:nullable AType> */
+var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#== (var7,var_old_child) on <var7:AType> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AType> */
-var12 = var7 == var_other;
-var10 = var12;
-goto RET_LABEL11;
-RET_LABEL11:(void)0;
+var19 = ((short int(*)(val* self, val* p0))(var_n_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_type, var_other); /* == on <var_n_type:nullable AType(AType)>*/
 }
+var20 = !var19;
+var17 = var20;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
 }
-var8 = var10;
-goto RET_LABEL9;
-RET_LABEL9:(void)0;
+var16 = var17;
+}
+if (var16){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
+var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
+RET_LABEL21:(void)0;
 }
 }
-if (var8){
-/* <var_new_child:nullable ANode> isa AType */
-cltype14 = type_nit__AType.color;
-idtype15 = type_nit__AType.id;
-if(var_new_child == NULL) {
-var13 = 0;
 } else {
-if(cltype14 >= var_new_child->type->table_size) {
-var13 = 0;
+}
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_assign].val = var_n_assign; /* _n_assign on <self:AAttrPropdef> */
+if (var_n_assign == NULL) {
+var22 = 0; /* is null */
 } else {
-var13 = var_new_child->type->type_table[cltype14] == idtype15;
+var22 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_assign,((val*)NULL)) on <var_n_assign:nullable TAssign> */
+var_other = ((val*)NULL);
+{
+var25 = ((short int(*)(val* self, val* p0))(var_n_assign->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_assign, var_other); /* == on <var_n_assign:nullable TAssign(TAssign)>*/
 }
+var26 = !var25;
+var23 = var26;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
 }
-if (unlikely(!var13)) {
-var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name16);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 803);
-show_backtrace(1);
+var22 = var23;
 }
+if (var22){
 {
-nit__parser_prod___ASuperclass___n_type_61d(self, var_new_child); /* Direct call parser_prod#ASuperclass#n_type= on <self:ASuperclass>*/
+{ /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign(TAssign)> */
+var_n_assign->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign(TAssign)> */
+RET_LABEL27:(void)0;
+}
 }
-goto RET_LABEL;
 } else {
 }
-var17 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperclass> */
-if (var17 == NULL) {
-var18 = 0; /* <var_old_child:ANode> cannot be null */
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrPropdef> */
+if (var_n_expr == NULL) {
+var28 = 0; /* is null */
 } else {
-{ /* Inline kernel#Object#== (var17,var_old_child) on <var17:nullable AAnnotations> */
-var_other = var_old_child;
+var28 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_expr,((val*)NULL)) on <var_n_expr:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-{ /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:nullable AAnnotations(AAnnotations)> */
-var23 = var17 == var_other;
-var21 = var23;
-goto RET_LABEL22;
-RET_LABEL22:(void)0;
+var31 = ((short int(*)(val* self, val* p0))(var_n_expr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_expr, var_other); /* == on <var_n_expr:nullable AExpr(AExpr)>*/
 }
+var32 = !var31;
+var29 = var32;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
 }
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var28 = var29;
+}
+if (var28){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
+var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
+RET_LABEL33:(void)0;
 }
-var18 = var19;
 }
-if (var18){
-/* <var_new_child:nullable ANode> isa nullable AAnnotations */
-cltype25 = type_nullable__nit__AAnnotations.color;
-idtype26 = type_nullable__nit__AAnnotations.id;
-if(var_new_child == NULL) {
-var24 = 1;
 } else {
-if(cltype25 >= var_new_child->type->table_size) {
-var24 = 0;
+}
+self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAttrPropdef> */
+if (var_n_annotations == NULL) {
+var34 = 0; /* is null */
 } else {
-var24 = var_new_child->type->type_table[cltype25] == idtype26;
+var34 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
+{
+var37 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
+var38 = !var37;
+var35 = var38;
+goto RET_LABEL36;
+RET_LABEL36:(void)0;
 }
-if (unlikely(!var24)) {
-var_class_name27 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name27);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 807);
-show_backtrace(1);
+var34 = var35;
 }
+if (var34){
 {
-nit__parser_prod___ASuperclass___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASuperclass#n_annotations= on <self:ASuperclass>*/
+{ /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+RET_LABEL39:(void)0;
+}
 }
-goto RET_LABEL;
 } else {
 }
-RET_LABEL:;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AAttrPropdef> */
+if (var_n_kwdo == NULL) {
+var40 = 0; /* is null */
+} else {
+var40 = 1; /* arg is null and recv is not */
 }
-/* method parser_prod#ASuperclass#n_kwsuper= for (self: ASuperclass, TKwsuper) */
-void nit__parser_prod___ASuperclass___n_kwsuper_61d(val* self, val* p0) {
-val* var_node /* var node: TKwsuper */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_kwsuper].val = var_node; /* _n_kwsuper on <self:ASuperclass> */
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_kwdo,((val*)NULL)) on <var_n_kwdo:nullable TKwdo> */
+var_other = ((val*)NULL);
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwsuper> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwsuper> */
-RET_LABEL1:(void)0;
+var43 = ((short int(*)(val* self, val* p0))(var_n_kwdo->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwdo, var_other); /* == on <var_n_kwdo:nullable TKwdo(TKwdo)>*/
 }
+var44 = !var43;
+var41 = var44;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
 }
-RET_LABEL:;
+var40 = var41;
 }
-/* method parser_prod#ASuperclass#n_type= for (self: ASuperclass, AType) */
-void nit__parser_prod___ASuperclass___n_type_61d(val* self, val* p0) {
-val* var_node /* var node: AType */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_type].val = var_node; /* _n_type on <self:ASuperclass> */
+if (var40){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
-RET_LABEL1:(void)0;
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo(TKwdo)> */
+var_n_kwdo->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo(TKwdo)> */
+RET_LABEL45:(void)0;
 }
 }
-RET_LABEL:;
+} else {
 }
-/* method parser_prod#ASuperclass#n_annotations= for (self: ASuperclass, nullable AAnnotations) */
-void nit__parser_prod___ASuperclass___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
-val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ASuperclass> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val = var_n_block; /* _n_block on <self:AAttrPropdef> */
+if (var_n_block == NULL) {
+var46 = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var46 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var49 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var50 = !var49;
+var47 = var50;
+goto RET_LABEL48;
+RET_LABEL48:(void)0;
 }
-var1 = var2;
+var46 = var47;
 }
-if (var1){
+if (var46){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+{ /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
+var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
+RET_LABEL51:(void)0;
 }
 }
 } else {
 }
-RET_LABEL:;
-}
-/* method parser_prod#ASuperclass#visit_all for (self: ASuperclass, Visitor) */
-void nit__parser_prod___ASuperclass___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TKwsuper */;
-val* var1 /* : AType */;
-val* var2 /* : nullable AAnnotations */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_kwsuper].val; /* _n_kwsuper on <self:ASuperclass> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 831);
-show_backtrace(1);
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwend].val = var_n_kwend; /* _n_kwend on <self:AAttrPropdef> */
+if (var_n_kwend == NULL) {
+var52 = 0; /* is null */
+} else {
+var52 = 1; /* arg is null and recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_kwend,((val*)NULL)) on <var_n_kwend:nullable TKwend> */
+var_other = ((val*)NULL);
 {
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+var55 = ((short int(*)(val* self, val* p0))(var_n_kwend->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwend, var_other); /* == on <var_n_kwend:nullable TKwend(TKwend)>*/
 }
-var1 = self->attrs[COLOR_nit__parser_nodes__ASuperclass___n_type].val; /* _n_type on <self:ASuperclass> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 832);
-show_backtrace(1);
+var56 = !var55;
+var53 = var56;
+goto RET_LABEL54;
+RET_LABEL54:(void)0;
 }
-{
-nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+var52 = var53;
 }
-var2 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperclass> */
+if (var52){
 {
-nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
+var_n_kwend->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
+RET_LABEL57:(void)0;
+}
+}
+} else {
 }
 RET_LABEL:;
 }
-/* method parser_prod#AAttrPropdef#init_aattrpropdef for (self: AAttrPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwvar, nullable TId, nullable AType, nullable AExpr, nullable AAnnotations, nullable AExpr) */
-void nit__parser_prod___AAttrPropdef___init_aattrpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8) {
-val* var_n_doc /* var n_doc: nullable ADoc */;
-val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
-val* var_n_visibility /* var n_visibility: nullable AVisibility */;
-val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
-val* var_n_id2 /* var n_id2: nullable TId */;
-val* var_n_type /* var n_type: nullable AType */;
-val* var_n_expr /* var n_expr: nullable AExpr */;
-val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var_n_block /* var n_block: nullable AExpr */;
-val* var /* : null */;
+/* method parser_prod#AAttrPropdef#replace_child for (self: AAttrPropdef, ANode, nullable ANode) */
+void nit__parser_prod___AAttrPropdef___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
+val* var_old_child /* var old_child: ANode */;
+val* var_new_child /* var new_child: nullable ANode */;
+val* var /* : nullable ADoc */;
 short int var1 /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-val* var7 /* : null */;
-short int var8 /* : Bool */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var8 /* : nullable TKwredef */;
 short int var9 /* : Bool */;
-short int var11 /* : Bool */;
+short int var10 /* : Bool */;
 short int var12 /* : Bool */;
-val* var17 /* : null */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+const char* var_class_name18;
+val* var19 /* : nullable AVisibility */;
+short int var20 /* : Bool */;
 short int var21 /* : Bool */;
-short int var22 /* : Bool */;
-val* var24 /* : null */;
+short int var23 /* : Bool */;
 short int var25 /* : Bool */;
 short int var26 /* : Bool */;
-short int var28 /* : Bool */;
-short int var29 /* : Bool */;
-val* var31 /* : null */;
-short int var32 /* : Bool */;
-short int var33 /* : Bool */;
-short int var35 /* : Bool */;
-short int var36 /* : Bool */;
-val* var38 /* : null */;
-short int var39 /* : Bool */;
-short int var40 /* : Bool */;
-short int var42 /* : Bool */;
-short int var43 /* : Bool */;
-var_n_doc = p0;
-var_n_kwredef = p1;
-var_n_visibility = p2;
-var_n_kwvar = p3;
-var_n_id2 = p4;
-var_n_type = p5;
-var_n_expr = p6;
-var_n_annotations = p7;
-var_n_block = p8;
-self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AAttrPropdef> */
-var = NULL;
-if (var_n_doc == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
-var_other = var;
-{
-var4 = ((short int (*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
-}
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
-}
-var1 = var2;
-}
-if (var1){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
-var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
-}
-}
-} else {
-}
-self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AAttrPropdef> */
-var7 = NULL;
-if (var_n_kwredef == NULL) {
-var8 = 0; /* is null */
-} else {
-var8 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var7) on <var_n_kwredef:nullable TKwredef> */
-var_other = var7;
-{
-var11 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
-}
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
-}
-var8 = var9;
-}
-if (var8){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-RET_LABEL13:(void)0;
-}
-}
-} else {
-}
-if (unlikely(var_n_visibility == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 853);
-show_backtrace(1);
-}
-self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AAttrPropdef> */
-if (var_n_visibility == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 854);
-show_backtrace(1);
-} else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
-if (unlikely(var_n_visibility == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL14:(void)0;
-}
-}
-if (unlikely(var_n_kwvar == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 855);
-show_backtrace(1);
-}
-self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AAttrPropdef> */
-if (var_n_kwvar == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 856);
-show_backtrace(1);
-} else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_kwvar,self) on <var_n_kwvar:nullable TKwvar> */
-if (unlikely(var_n_kwvar == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_kwvar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwvar:nullable TKwvar> */
-RET_LABEL15:(void)0;
-}
-}
-if (unlikely(var_n_id2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 857);
-show_backtrace(1);
-}
-self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_id2].val = var_n_id2; /* _n_id2 on <self:AAttrPropdef> */
-if (var_n_id2 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 858);
-show_backtrace(1);
-} else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_id2,self) on <var_n_id2:nullable TId> */
-if (unlikely(var_n_id2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_id2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id2:nullable TId> */
-RET_LABEL16:(void)0;
-}
-}
-self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val = var_n_type; /* _n_type on <self:AAttrPropdef> */
-var17 = NULL;
-if (var_n_type == NULL) {
-var18 = 0; /* is null */
-} else {
-var18 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_type,var17) on <var_n_type:nullable AType> */
-var_other = var17;
-{
-var21 = ((short int (*)(val* self, val* p0))(var_n_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
-}
-var22 = !var21;
-var19 = var22;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
-}
-var18 = var19;
-}
-if (var18){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
-var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
-RET_LABEL23:(void)0;
-}
-}
-} else {
-}
-self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrPropdef> */
-var24 = NULL;
-if (var_n_expr == NULL) {
-var25 = 0; /* is null */
-} else {
-var25 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_expr,var24) on <var_n_expr:nullable AExpr> */
-var_other = var24;
-{
-var28 = ((short int (*)(val* self, val* p0))(var_n_expr->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_expr, var_other) /* == on <var_n_expr:nullable AExpr(AExpr)>*/;
-}
-var29 = !var28;
-var26 = var29;
-goto RET_LABEL27;
-RET_LABEL27:(void)0;
-}
-var25 = var26;
-}
-if (var25){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
-var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
-RET_LABEL30:(void)0;
-}
-}
-} else {
-}
-self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAttrPropdef> */
-var31 = NULL;
-if (var_n_annotations == NULL) {
-var32 = 0; /* is null */
-} else {
-var32 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var31) on <var_n_annotations:nullable AAnnotations> */
-var_other = var31;
-{
-var35 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
-}
-var36 = !var35;
-var33 = var36;
-goto RET_LABEL34;
-RET_LABEL34:(void)0;
-}
-var32 = var33;
-}
-if (var32){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL37:(void)0;
-}
-}
-} else {
-}
-self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val = var_n_block; /* _n_block on <self:AAttrPropdef> */
-var38 = NULL;
-if (var_n_block == NULL) {
-var39 = 0; /* is null */
-} else {
-var39 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_n_block,var38) on <var_n_block:nullable AExpr> */
-var_other = var38;
-{
-var42 = ((short int (*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
-}
-var43 = !var42;
-var40 = var43;
-goto RET_LABEL41;
-RET_LABEL41:(void)0;
-}
-var39 = var40;
-}
-if (var39){
-{
-{ /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
-var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
-RET_LABEL44:(void)0;
-}
-}
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AAttrPropdef#replace_child for (self: AAttrPropdef, ANode, nullable ANode) */
-void nit__parser_prod___AAttrPropdef___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : nullable ADoc */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var4 /* : Bool */;
-short int var6 /* : Bool */;
-short int var7 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-val* var8 /* : nullable TKwredef */;
-short int var9 /* : Bool */;
-short int var10 /* : Bool */;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
-short int var15 /* : Bool */;
-int cltype16;
-int idtype17;
-const char* var_class_name18;
-val* var19 /* : nullable AVisibility */;
-short int var20 /* : Bool */;
-short int var21 /* : Bool */;
-short int var23 /* : Bool */;
-short int var25 /* : Bool */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-const char* var_class_name29;
-val* var30 /* : TKwvar */;
-short int var31 /* : Bool */;
+int cltype27;
+int idtype28;
+const char* var_class_name29;
+val* var30 /* : TKwvar */;
+short int var31 /* : Bool */;
 short int var33 /* : Bool */;
 short int var35 /* : Bool */;
 short int var36 /* : Bool */;
@@ -5628,7 +5469,7 @@ short int var57 /* : Bool */;
 int cltype58;
 int idtype59;
 const char* var_class_name60;
-val* var61 /* : nullable AExpr */;
+val* var61 /* : nullable TAssign */;
 short int var62 /* : Bool */;
 short int var63 /* : Bool */;
 short int var65 /* : Bool */;
@@ -5637,7 +5478,7 @@ short int var68 /* : Bool */;
 int cltype69;
 int idtype70;
 const char* var_class_name71;
-val* var72 /* : nullable AAnnotations */;
+val* var72 /* : nullable AExpr */;
 short int var73 /* : Bool */;
 short int var74 /* : Bool */;
 short int var76 /* : Bool */;
@@ -5646,7 +5487,7 @@ short int var79 /* : Bool */;
 int cltype80;
 int idtype81;
 const char* var_class_name82;
-val* var83 /* : nullable AExpr */;
+val* var83 /* : nullable AAnnotations */;
 short int var84 /* : Bool */;
 short int var85 /* : Bool */;
 short int var87 /* : Bool */;
@@ -5655,6 +5496,33 @@ short int var90 /* : Bool */;
 int cltype91;
 int idtype92;
 const char* var_class_name93;
+val* var94 /* : nullable TKwdo */;
+short int var95 /* : Bool */;
+short int var96 /* : Bool */;
+short int var98 /* : Bool */;
+short int var100 /* : Bool */;
+short int var101 /* : Bool */;
+int cltype102;
+int idtype103;
+const char* var_class_name104;
+val* var105 /* : nullable AExpr */;
+short int var106 /* : Bool */;
+short int var107 /* : Bool */;
+short int var109 /* : Bool */;
+short int var111 /* : Bool */;
+short int var112 /* : Bool */;
+int cltype113;
+int idtype114;
+const char* var_class_name115;
+val* var116 /* : nullable TKwend */;
+short int var117 /* : Bool */;
+short int var118 /* : Bool */;
+short int var120 /* : Bool */;
+short int var122 /* : Bool */;
+short int var123 /* : Bool */;
+int cltype124;
+int idtype125;
+const char* var_class_name126;
 var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAttrPropdef> */
@@ -5693,8 +5561,8 @@ var7 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 872);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 835);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_doc= on <self:AAttrPropdef>*/
@@ -5738,8 +5606,8 @@ var15 = var_new_child->type->type_table[cltype16] == idtype17;
 if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 876);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 839);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_kwredef= on <self:AAttrPropdef>*/
@@ -5783,8 +5651,8 @@ var26 = var_new_child->type->type_table[cltype27] == idtype28;
 if (unlikely(!var26)) {
 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 880);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 843);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_visibility= on <self:AAttrPropdef>*/
@@ -5795,8 +5663,8 @@ goto RET_LABEL;
 var30 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwvar].val; /* _n_kwvar on <self:AAttrPropdef> */
 if (unlikely(var30 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 883);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 846);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwvar> */
@@ -5830,8 +5698,8 @@ var36 = var_new_child->type->type_table[cltype37] == idtype38;
 if (unlikely(!var36)) {
 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwvar", var_class_name39);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 884);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 847);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___n_kwvar_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_kwvar= on <self:AAttrPropdef>*/
@@ -5842,8 +5710,8 @@ goto RET_LABEL;
 var40 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_id2].val; /* _n_id2 on <self:AAttrPropdef> */
 if (unlikely(var40 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id2");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 887);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 850);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var40,var_old_child) on <var40:TId> */
@@ -5877,8 +5745,8 @@ var46 = var_new_child->type->type_table[cltype47] == idtype48;
 if (unlikely(!var46)) {
 var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name49);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 888);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 851);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___n_id2_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_id2= on <self:AAttrPropdef>*/
@@ -5922,8 +5790,8 @@ var57 = var_new_child->type->type_table[cltype58] == idtype59;
 if (unlikely(!var57)) {
 var_class_name60 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name60);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 892);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 855);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AAttrPropdef___n_type_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_type= on <self:AAttrPropdef>*/
@@ -5931,14 +5799,14 @@ nit__parser_prod___AAttrPropdef___n_type_61d(self, var_new_child); /* Direct cal
 goto RET_LABEL;
 } else {
 }
-var61 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
+var61 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_assign].val; /* _n_assign on <self:AAttrPropdef> */
 if (var61 == NULL) {
 var62 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-{ /* Inline kernel#Object#== (var61,var_old_child) on <var61:nullable AExpr> */
+{ /* Inline kernel#Object#== (var61,var_old_child) on <var61:nullable TAssign> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var61,var_other) on <var61:nullable AExpr(AExpr)> */
+{ /* Inline kernel#Object#is_same_instance (var61,var_other) on <var61:nullable TAssign(TAssign)> */
 var67 = var61 == var_other;
 var65 = var67;
 goto RET_LABEL66;
@@ -5952,9 +5820,9 @@ RET_LABEL64:(void)0;
 var62 = var63;
 }
 if (var62){
-/* <var_new_child:nullable ANode> isa nullable AExpr */
-cltype69 = type_nullable__nit__AExpr.color;
-idtype70 = type_nullable__nit__AExpr.id;
+/* <var_new_child:nullable ANode> isa nullable TAssign */
+cltype69 = type_nullable__nit__TAssign.color;
+idtype70 = type_nullable__nit__TAssign.id;
 if(var_new_child == NULL) {
 var68 = 1;
 } else {
@@ -5966,24 +5834,24 @@ var68 = var_new_child->type->type_table[cltype69] == idtype70;
 }
 if (unlikely(!var68)) {
 var_class_name71 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name71);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 896);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TAssign", var_class_name71);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 859);
+fatal_exit(1);
 }
 {
-nit__parser_prod___AAttrPropdef___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_expr= on <self:AAttrPropdef>*/
+nit__parser_prod___AAttrPropdef___n_assign_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_assign= on <self:AAttrPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-var72 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAttrPropdef> */
+var72 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
 if (var72 == NULL) {
 var73 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-{ /* Inline kernel#Object#== (var72,var_old_child) on <var72:nullable AAnnotations> */
+{ /* Inline kernel#Object#== (var72,var_old_child) on <var72:nullable AExpr> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var72,var_other) on <var72:nullable AAnnotations(AAnnotations)> */
+{ /* Inline kernel#Object#is_same_instance (var72,var_other) on <var72:nullable AExpr(AExpr)> */
 var78 = var72 == var_other;
 var76 = var78;
 goto RET_LABEL77;
@@ -5997,9 +5865,9 @@ RET_LABEL75:(void)0;
 var73 = var74;
 }
 if (var73){
-/* <var_new_child:nullable ANode> isa nullable AAnnotations */
-cltype80 = type_nullable__nit__AAnnotations.color;
-idtype81 = type_nullable__nit__AAnnotations.id;
+/* <var_new_child:nullable ANode> isa nullable AExpr */
+cltype80 = type_nullable__nit__AExpr.color;
+idtype81 = type_nullable__nit__AExpr.id;
 if(var_new_child == NULL) {
 var79 = 1;
 } else {
@@ -6011,24 +5879,24 @@ var79 = var_new_child->type->type_table[cltype80] == idtype81;
 }
 if (unlikely(!var79)) {
 var_class_name82 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name82);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 900);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name82);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 863);
+fatal_exit(1);
 }
 {
-nit__parser_prod___AAttrPropdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_annotations= on <self:AAttrPropdef>*/
+nit__parser_prod___AAttrPropdef___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_expr= on <self:AAttrPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-var83 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+var83 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAttrPropdef> */
 if (var83 == NULL) {
 var84 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-{ /* Inline kernel#Object#== (var83,var_old_child) on <var83:nullable AExpr> */
+{ /* Inline kernel#Object#== (var83,var_old_child) on <var83:nullable AAnnotations> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var83,var_other) on <var83:nullable AExpr(AExpr)> */
+{ /* Inline kernel#Object#is_same_instance (var83,var_other) on <var83:nullable AAnnotations(AAnnotations)> */
 var89 = var83 == var_other;
 var87 = var89;
 goto RET_LABEL88;
@@ -6042,9 +5910,9 @@ RET_LABEL86:(void)0;
 var84 = var85;
 }
 if (var84){
-/* <var_new_child:nullable ANode> isa nullable AExpr */
-cltype91 = type_nullable__nit__AExpr.color;
-idtype92 = type_nullable__nit__AExpr.id;
+/* <var_new_child:nullable ANode> isa nullable AAnnotations */
+cltype91 = type_nullable__nit__AAnnotations.color;
+idtype92 = type_nullable__nit__AAnnotations.id;
 if(var_new_child == NULL) {
 var90 = 1;
 } else {
@@ -6056,53 +5924,186 @@ var90 = var_new_child->type->type_table[cltype91] == idtype92;
 }
 if (unlikely(!var90)) {
 var_class_name93 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name93);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 904);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name93);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 867);
+fatal_exit(1);
 }
 {
-nit__parser_prod___AAttrPropdef___n_block_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_block= on <self:AAttrPropdef>*/
+nit__parser_prod___AAttrPropdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_annotations= on <self:AAttrPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-RET_LABEL:;
-}
-/* method parser_prod#AAttrPropdef#n_doc= for (self: AAttrPropdef, nullable ADoc) */
-void nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
-val* var_node /* var node: nullable ADoc */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AAttrPropdef> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
+var94 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwdo].val; /* _n_kwdo on <self:AAttrPropdef> */
+if (var94 == NULL) {
+var95 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+{ /* Inline kernel#Object#== (var94,var_old_child) on <var94:nullable TKwdo> */
+var_other = var_old_child;
+{
+{ /* Inline kernel#Object#is_same_instance (var94,var_other) on <var94:nullable TKwdo(TKwdo)> */
+var100 = var94 == var_other;
+var98 = var100;
+goto RET_LABEL99;
+RET_LABEL99:(void)0;
+}
+}
+var96 = var98;
+goto RET_LABEL97;
+RET_LABEL97:(void)0;
+}
+var95 = var96;
+}
+if (var95){
+/* <var_new_child:nullable ANode> isa nullable TKwdo */
+cltype102 = type_nullable__nit__TKwdo.color;
+idtype103 = type_nullable__nit__TKwdo.id;
+if(var_new_child == NULL) {
+var101 = 1;
+} else {
+if(cltype102 >= var_new_child->type->table_size) {
+var101 = 0;
+} else {
+var101 = var_new_child->type->type_table[cltype102] == idtype103;
+}
+}
+if (unlikely(!var101)) {
+var_class_name104 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwdo", var_class_name104);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 871);
+fatal_exit(1);
+}
+{
+nit__parser_prod___AAttrPropdef___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_kwdo= on <self:AAttrPropdef>*/
+}
+goto RET_LABEL;
+} else {
+}
+var105 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+if (var105 == NULL) {
+var106 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var105,var_old_child) on <var105:nullable AExpr> */
+var_other = var_old_child;
+{
+{ /* Inline kernel#Object#is_same_instance (var105,var_other) on <var105:nullable AExpr(AExpr)> */
+var111 = var105 == var_other;
+var109 = var111;
+goto RET_LABEL110;
+RET_LABEL110:(void)0;
+}
+}
+var107 = var109;
+goto RET_LABEL108;
+RET_LABEL108:(void)0;
+}
+var106 = var107;
+}
+if (var106){
+/* <var_new_child:nullable ANode> isa nullable AExpr */
+cltype113 = type_nullable__nit__AExpr.color;
+idtype114 = type_nullable__nit__AExpr.id;
+if(var_new_child == NULL) {
+var112 = 1;
+} else {
+if(cltype113 >= var_new_child->type->table_size) {
+var112 = 0;
+} else {
+var112 = var_new_child->type->type_table[cltype113] == idtype114;
+}
+}
+if (unlikely(!var112)) {
+var_class_name115 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name115);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 875);
+fatal_exit(1);
+}
+{
+nit__parser_prod___AAttrPropdef___n_block_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_block= on <self:AAttrPropdef>*/
+}
+goto RET_LABEL;
+} else {
+}
+var116 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwend].val; /* _n_kwend on <self:AAttrPropdef> */
+if (var116 == NULL) {
+var117 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var116,var_old_child) on <var116:nullable TKwend> */
+var_other = var_old_child;
+{
+{ /* Inline kernel#Object#is_same_instance (var116,var_other) on <var116:nullable TKwend(TKwend)> */
+var122 = var116 == var_other;
+var120 = var122;
+goto RET_LABEL121;
+RET_LABEL121:(void)0;
+}
+}
+var118 = var120;
+goto RET_LABEL119;
+RET_LABEL119:(void)0;
+}
+var117 = var118;
+}
+if (var117){
+/* <var_new_child:nullable ANode> isa nullable TKwend */
+cltype124 = type_nullable__nit__TKwend.color;
+idtype125 = type_nullable__nit__TKwend.id;
+if(var_new_child == NULL) {
+var123 = 1;
+} else {
+if(cltype124 >= var_new_child->type->table_size) {
+var123 = 0;
+} else {
+var123 = var_new_child->type->type_table[cltype124] == idtype125;
+}
+}
+if (unlikely(!var123)) {
+var_class_name126 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name126);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 879);
+fatal_exit(1);
+}
+{
+nit__parser_prod___AAttrPropdef___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#AAttrPropdef#n_kwend= on <self:AAttrPropdef>*/
+}
+goto RET_LABEL;
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AAttrPropdef#n_doc= for (self: AAttrPropdef, nullable ADoc) */
+void nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
+val* var_node /* var node: nullable ADoc */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AAttrPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6112,38 +6113,36 @@ RET_LABEL:;
 /* method parser_prod#AAttrPropdef#n_kwredef= for (self: AAttrPropdef, nullable TKwredef) */
 void nit__parser_prod___AAttrPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AAttrPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6157,14 +6156,14 @@ var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:AAttrPropdef> */
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 922);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 897);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
 RET_LABEL1:(void)0;
@@ -6201,38 +6200,75 @@ RET_LABEL:;
 /* method parser_prod#AAttrPropdef#n_type= for (self: AAttrPropdef, nullable AType) */
 void nit__parser_prod___AAttrPropdef___n_type_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AType */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val = var_node; /* _n_type on <self:AAttrPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AType> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AType(AType)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AAttrPropdef#n_assign= for (self: AAttrPropdef, nullable TAssign) */
+void nit__parser_prod___AAttrPropdef___n_assign_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TAssign */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_assign].val = var_node; /* _n_assign on <self:AAttrPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TAssign> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TAssign(TAssign)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TAssign(TAssign)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TAssign(TAssign)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6242,38 +6278,36 @@ RET_LABEL:;
 /* method parser_prod#AAttrPropdef#n_expr= for (self: AAttrPropdef, nullable AExpr) */
 void nit__parser_prod___AAttrPropdef___n_expr_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val = var_node; /* _n_expr on <self:AAttrPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6283,38 +6317,75 @@ RET_LABEL:;
 /* method parser_prod#AAttrPropdef#n_annotations= for (self: AAttrPropdef, nullable AAnnotations) */
 void nit__parser_prod___AAttrPropdef___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAttrPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AAttrPropdef#n_kwdo= for (self: AAttrPropdef, nullable TKwdo) */
+void nit__parser_prod___AAttrPropdef___n_kwdo_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TKwdo */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwdo].val = var_node; /* _n_kwdo on <self:AAttrPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwdo> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwdo(TKwdo)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwdo(TKwdo)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwdo(TKwdo)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6324,38 +6395,75 @@ RET_LABEL:;
 /* method parser_prod#AAttrPropdef#n_block= for (self: AAttrPropdef, nullable AExpr) */
 void nit__parser_prod___AAttrPropdef___n_block_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val = var_node; /* _n_block on <self:AAttrPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AAttrPropdef#n_kwend= for (self: AAttrPropdef, nullable TKwend) */
+void nit__parser_prod___AAttrPropdef___n_kwend_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TKwend */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwend].val = var_node; /* _n_kwend on <self:AAttrPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwend> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwend(TKwend)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6371,9 +6479,12 @@ val* var2 /* : nullable AVisibility */;
 val* var3 /* : TKwvar */;
 val* var4 /* : TId */;
 val* var5 /* : nullable AType */;
-val* var6 /* : nullable AExpr */;
-val* var7 /* : nullable AAnnotations */;
-val* var8 /* : nullable AExpr */;
+val* var6 /* : nullable TAssign */;
+val* var7 /* : nullable AExpr */;
+val* var8 /* : nullable AAnnotations */;
+val* var9 /* : nullable TKwdo */;
+val* var10 /* : nullable AExpr */;
+val* var11 /* : nullable TKwend */;
 var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAttrPropdef> */
 {
@@ -6390,8 +6501,8 @@ nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visit
 var3 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwvar].val; /* _n_kwvar on <self:AAttrPropdef> */
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 961);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 951);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -6399,8 +6510,8 @@ nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visit
 var4 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_id2].val; /* _n_id2 on <self:AAttrPropdef> */
 if (unlikely(var4 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id2");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 962);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 952);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -6409,58 +6520,72 @@ var5 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_ty
 {
 nit___nit__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-var6 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
+var6 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_assign].val; /* _n_assign on <self:AAttrPropdef> */
 {
 nit___nit__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-var7 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAttrPropdef> */
+var7 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
 {
 nit___nit__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-var8 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+var8 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAttrPropdef> */
 {
 nit___nit__Visitor___enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
+var9 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwdo].val; /* _n_kwdo on <self:AAttrPropdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
+var10 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
+var11 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_kwend].val; /* _n_kwend on <self:AAttrPropdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var11); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
 RET_LABEL:;
 }
 /* method parser_prod#AMainMethPropdef#init_amainmethpropdef for (self: AMainMethPropdef, nullable TKwredef, nullable AExpr) */
 void nit__parser_prod___AMainMethPropdef___init_amainmethpropdef(val* self, val* p0, val* p1) {
 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
 val* var_n_block /* var n_block: nullable AExpr */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-val* var7 /* : null */;
+short int var7 /* : Bool */;
 short int var8 /* : Bool */;
-short int var9 /* : Bool */;
+short int var10 /* : Bool */;
 short int var11 /* : Bool */;
-short int var12 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AMainMethPropdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_kwredef = p0;
 var_n_block = p1;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AMainMethPropdef> */
-var = NULL;
 if (var_n_kwredef == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var) on <var_n_kwredef:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
@@ -6470,30 +6595,29 @@ RET_LABEL6:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AMainMethPropdef> */
-var7 = NULL;
 if (var_n_block == NULL) {
-var8 = 0; /* is null */
+var7 = 0; /* is null */
 } else {
-var8 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_block,var7) on <var_n_block:nullable AExpr> */
-var_other = var7;
+{ /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var11 = ((short int (*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var8 = var9;
+var7 = var8;
 }
-if (var8){
+if (var7){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
-RET_LABEL13:(void)0;
+RET_LABEL12:(void)0;
 }
 }
 } else {
@@ -6561,8 +6685,8 @@ var7 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 984);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 977);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMainMethPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AMainMethPropdef#n_kwredef= on <self:AMainMethPropdef>*/
@@ -6606,8 +6730,8 @@ var15 = var_new_child->type->type_table[cltype16] == idtype17;
 if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 988);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 981);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMainMethPropdef___nit__parser_nodes__AMethPropdef__n_block_61d(self, var_new_child); /* Direct call parser_prod#AMainMethPropdef#n_block= on <self:AMainMethPropdef>*/
@@ -6620,38 +6744,36 @@ RET_LABEL:;
 /* method parser_prod#AMainMethPropdef#n_kwredef= for (self: AMainMethPropdef, nullable TKwredef) */
 void nit__parser_prod___AMainMethPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AMainMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6661,38 +6783,36 @@ RET_LABEL:;
 /* method parser_prod#AMainMethPropdef#n_block= for (self: AMainMethPropdef, nullable AExpr) */
 void nit__parser_prod___AMainMethPropdef___nit__parser_nodes__AMethPropdef__n_block_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val = var_node; /* _n_block on <self:AMainMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -6724,22 +6844,24 @@ val* var_n_kwtype /* var n_kwtype: nullable TKwtype */;
 val* var_n_id /* var n_id: nullable TClassid */;
 val* var_n_type /* var n_type: nullable AType */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-val* var7 /* : null */;
+short int var7 /* : Bool */;
 short int var8 /* : Bool */;
-short int var9 /* : Bool */;
+short int var10 /* : Bool */;
 short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var18 /* : null */;
-short int var19 /* : Bool */;
+short int var17 /* : Bool */;
+short int var18 /* : Bool */;
 short int var20 /* : Bool */;
-short int var22 /* : Bool */;
-short int var23 /* : Bool */;
+short int var21 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:ATypePropdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_doc = p0;
 var_n_kwredef = p1;
 var_n_visibility = p2;
@@ -6748,26 +6870,25 @@ var_n_id = p4;
 var_n_type = p5;
 var_n_annotations = p6;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:ATypePropdef> */
-var = NULL;
 if (var_n_doc == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
 var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
@@ -6777,143 +6898,141 @@ RET_LABEL6:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:ATypePropdef> */
-var7 = NULL;
 if (var_n_kwredef == NULL) {
-var8 = 0; /* is null */
+var7 = 0; /* is null */
 } else {
-var8 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var7) on <var_n_kwredef:nullable TKwredef> */
-var_other = var7;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var11 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var8 = var9;
+var7 = var8;
 }
-if (var8){
+if (var7){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-RET_LABEL13:(void)0;
+RET_LABEL12:(void)0;
 }
 }
 } else {
 }
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1026);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1019);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:ATypePropdef> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1027);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1020);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL14:(void)0;
+RET_LABEL13:(void)0;
 }
 }
 if (unlikely(var_n_kwtype == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1028);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1021);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_kwtype].val = var_n_kwtype; /* _n_kwtype on <self:ATypePropdef> */
 if (var_n_kwtype == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1029);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1022);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwtype,self) on <var_n_kwtype:nullable TKwtype> */
 if (unlikely(var_n_kwtype == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_kwtype->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwtype:nullable TKwtype> */
-RET_LABEL15:(void)0;
+RET_LABEL14:(void)0;
 }
 }
 if (unlikely(var_n_id == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1030);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1023);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val = var_n_id; /* _n_id on <self:ATypePropdef> */
 if (var_n_id == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1031);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1024);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid> */
 if (unlikely(var_n_id == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid> */
-RET_LABEL16:(void)0;
+RET_LABEL15:(void)0;
 }
 }
 if (unlikely(var_n_type == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1032);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1025);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val = var_n_type; /* _n_type on <self:ATypePropdef> */
 if (var_n_type == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1033);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1026);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
 if (unlikely(var_n_type == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
-RET_LABEL17:(void)0;
+RET_LABEL16:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ATypePropdef> */
-var18 = NULL;
 if (var_n_annotations == NULL) {
-var19 = 0; /* is null */
+var17 = 0; /* is null */
 } else {
-var19 = 1; /* arg is null and recv is not */
+var17 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var18) on <var_n_annotations:nullable AAnnotations> */
-var_other = var18;
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var22 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var20 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
-var23 = !var22;
-var20 = var23;
-goto RET_LABEL21;
-RET_LABEL21:(void)0;
+var21 = !var20;
+var18 = var21;
+goto RET_LABEL19;
+RET_LABEL19:(void)0;
 }
-var19 = var20;
+var17 = var18;
 }
-if (var19){
+if (var17){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL24:(void)0;
+RET_LABEL22:(void)0;
 }
 }
 } else {
@@ -7023,8 +7142,8 @@ var7 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1041);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1034);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_doc= on <self:ATypePropdef>*/
@@ -7068,8 +7187,8 @@ var15 = var_new_child->type->type_table[cltype16] == idtype17;
 if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1045);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1038);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_kwredef= on <self:ATypePropdef>*/
@@ -7113,8 +7232,8 @@ var26 = var_new_child->type->type_table[cltype27] == idtype28;
 if (unlikely(!var26)) {
 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1049);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1042);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_visibility= on <self:ATypePropdef>*/
@@ -7125,8 +7244,8 @@ goto RET_LABEL;
 var30 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
 if (unlikely(var30 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1052);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1045);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwtype> */
@@ -7160,8 +7279,8 @@ var36 = var_new_child->type->type_table[cltype37] == idtype38;
 if (unlikely(!var36)) {
 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwtype", var_class_name39);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1053);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1046);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___n_kwtype_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_kwtype= on <self:ATypePropdef>*/
@@ -7172,8 +7291,8 @@ goto RET_LABEL;
 var40 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
 if (unlikely(var40 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1056);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1049);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var40,var_old_child) on <var40:TClassid> */
@@ -7207,8 +7326,8 @@ var46 = var_new_child->type->type_table[cltype47] == idtype48;
 if (unlikely(!var46)) {
 var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TClassid", var_class_name49);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1057);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1050);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___n_id_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_id= on <self:ATypePropdef>*/
@@ -7219,8 +7338,8 @@ goto RET_LABEL;
 var50 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
 if (unlikely(var50 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1060);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1053);
+fatal_exit(1);
 }
 {
 { /* Inline kernel#Object#== (var50,var_old_child) on <var50:AType> */
@@ -7254,8 +7373,8 @@ var56 = var_new_child->type->type_table[cltype57] == idtype58;
 if (unlikely(!var56)) {
 var_class_name59 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name59);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1061);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1054);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___n_type_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_type= on <self:ATypePropdef>*/
@@ -7299,8 +7418,8 @@ var67 = var_new_child->type->type_table[cltype68] == idtype69;
 if (unlikely(!var67)) {
 var_class_name70 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name70);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1065);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1058);
+fatal_exit(1);
 }
 {
 nit__parser_prod___ATypePropdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_annotations= on <self:ATypePropdef>*/
@@ -7313,38 +7432,36 @@ RET_LABEL:;
 /* method parser_prod#ATypePropdef#n_doc= for (self: ATypePropdef, nullable ADoc) */
 void nit__parser_prod___ATypePropdef___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
 val* var_node /* var node: nullable ADoc */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:ATypePropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -7354,38 +7471,36 @@ RET_LABEL:;
 /* method parser_prod#ATypePropdef#n_kwredef= for (self: ATypePropdef, nullable TKwredef) */
 void nit__parser_prod___ATypePropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:ATypePropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -7399,14 +7514,14 @@ var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:ATypePropdef> */
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1083);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1076);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
 RET_LABEL1:(void)0;
@@ -7456,38 +7571,36 @@ RET_LABEL:;
 /* method parser_prod#ATypePropdef#n_annotations= for (self: ATypePropdef, nullable AAnnotations) */
 void nit__parser_prod___ATypePropdef___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ATypePropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -7520,8 +7633,8 @@ nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visit
 var3 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
 if (unlikely(var3 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1112);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1105);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -7529,8 +7642,8 @@ nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visit
 var4 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
 if (unlikely(var4 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1113);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1106);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -7538,8 +7651,8 @@ nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visit
 var5 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
 if (unlikely(var5 == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1114);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1107);
+fatal_exit(1);
 }
 {
 nit___nit__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
@@ -7550,8 +7663,8 @@ nit___nit__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visit
 }
 RET_LABEL:;
 }
-/* method parser_prod#AMethPropdef#init_amethpropdef for (self: AMethPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable TKwinit, nullable TKwnew, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExternCalls, nullable AExternCodeBlock, nullable AExpr) */
-void nit__parser_prod___AMethPropdef___init_amethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9, val* p10, val* p11) {
+/* method parser_prod#AMethPropdef#init_amethpropdef for (self: AMethPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable TKwinit, nullable TKwnew, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExternCalls, nullable AExternCodeBlock, nullable TKwdo, nullable AExpr, nullable TKwend) */
+void nit__parser_prod___AMethPropdef___init_amethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9, val* p10, val* p11, val* p12, val* p13) {
 val* var_n_doc /* var n_doc: nullable ADoc */;
 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
@@ -7563,58 +7676,63 @@ val* var_n_signature /* var n_signature: nullable ASignature */;
 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
 val* var_n_extern_calls /* var n_extern_calls: nullable AExternCalls */;
 val* var_n_extern_code_block /* var n_extern_code_block: nullable AExternCodeBlock */;
+val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
 val* var_n_block /* var n_block: nullable AExpr */;
-val* var /* : null */;
-short int var1 /* : Bool */;
+val* var_n_kwend /* var n_kwend: nullable TKwend */;
+short int var /* : Bool */;
 short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-val* var7 /* : null */;
+short int var7 /* : Bool */;
 short int var8 /* : Bool */;
-short int var9 /* : Bool */;
+short int var10 /* : Bool */;
 short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var15 /* : null */;
-short int var16 /* : Bool */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
 short int var17 /* : Bool */;
-short int var19 /* : Bool */;
+short int var18 /* : Bool */;
 short int var20 /* : Bool */;
-val* var22 /* : null */;
+short int var21 /* : Bool */;
 short int var23 /* : Bool */;
 short int var24 /* : Bool */;
 short int var26 /* : Bool */;
 short int var27 /* : Bool */;
-val* var29 /* : null */;
+short int var29 /* : Bool */;
 short int var30 /* : Bool */;
-short int var31 /* : Bool */;
+short int var32 /* : Bool */;
 short int var33 /* : Bool */;
-short int var34 /* : Bool */;
-val* var36 /* : null */;
-short int var37 /* : Bool */;
-short int var38 /* : Bool */;
+short int var35 /* : Bool */;
+short int var36 /* : Bool */;
+short int var39 /* : Bool */;
 short int var40 /* : Bool */;
-short int var41 /* : Bool */;
-val* var44 /* : null */;
+short int var42 /* : Bool */;
+short int var43 /* : Bool */;
 short int var45 /* : Bool */;
 short int var46 /* : Bool */;
 short int var48 /* : Bool */;
 short int var49 /* : Bool */;
-val* var51 /* : null */;
+short int var51 /* : Bool */;
 short int var52 /* : Bool */;
-short int var53 /* : Bool */;
+short int var54 /* : Bool */;
 short int var55 /* : Bool */;
-short int var56 /* : Bool */;
-val* var58 /* : null */;
-short int var59 /* : Bool */;
+short int var57 /* : Bool */;
+short int var58 /* : Bool */;
 short int var60 /* : Bool */;
-short int var62 /* : Bool */;
+short int var61 /* : Bool */;
 short int var63 /* : Bool */;
-val* var65 /* : null */;
+short int var64 /* : Bool */;
 short int var66 /* : Bool */;
 short int var67 /* : Bool */;
 short int var69 /* : Bool */;
 short int var70 /* : Bool */;
+short int var72 /* : Bool */;
+short int var73 /* : Bool */;
+{
+{ /* Inline kernel#Object#init (self) on <self:AMethPropdef> */
+RET_LABEL1:(void)0;
+}
+}
 var_n_doc = p0;
 var_n_kwredef = p1;
 var_n_visibility = p2;
@@ -7626,28 +7744,29 @@ var_n_signature = p7;
 var_n_annotations = p8;
 var_n_extern_calls = p9;
 var_n_extern_code_block = p10;
-var_n_block = p11;
+var_n_kwdo = p11;
+var_n_block = p12;
+var_n_kwend = p13;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AMethPropdef> */
-var = NULL;
 if (var_n_doc == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
 var5 = !var4;
 var2 = var5;
 goto RET_LABEL3;
 RET_LABEL3:(void)0;
 }
-var1 = var2;
+var = var2;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
 var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
@@ -7657,305 +7776,352 @@ RET_LABEL6:(void)0;
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AMethPropdef> */
-var7 = NULL;
 if (var_n_kwredef == NULL) {
-var8 = 0; /* is null */
+var7 = 0; /* is null */
 } else {
-var8 = 1; /* arg is null and recv is not */
+var7 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwredef,var7) on <var_n_kwredef:nullable TKwredef> */
-var_other = var7;
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var11 = ((short int (*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-var8 = var9;
+var7 = var8;
 }
-if (var8){
+if (var7){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
-RET_LABEL13:(void)0;
+RET_LABEL12:(void)0;
 }
 }
 } else {
 }
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1138);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1133);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AMethPropdef> */
 if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1139);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1134);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
 if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
-RET_LABEL14:(void)0;
+RET_LABEL13:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwmeth].val = var_n_kwmeth; /* _n_kwmeth on <self:AMethPropdef> */
-var15 = NULL;
 if (var_n_kwmeth == NULL) {
-var16 = 0; /* is null */
+var14 = 0; /* is null */
 } else {
-var16 = 1; /* arg is null and recv is not */
+var14 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwmeth,var15) on <var_n_kwmeth:nullable TKwmeth> */
-var_other = var15;
+{ /* Inline kernel#Object#!= (var_n_kwmeth,((val*)NULL)) on <var_n_kwmeth:nullable TKwmeth> */
+var_other = ((val*)NULL);
 {
-var19 = ((short int (*)(val* self, val* p0))(var_n_kwmeth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwmeth, var_other) /* == on <var_n_kwmeth:nullable TKwmeth(TKwmeth)>*/;
+var17 = ((short int(*)(val* self, val* p0))(var_n_kwmeth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwmeth, var_other); /* == on <var_n_kwmeth:nullable TKwmeth(TKwmeth)>*/
 }
-var20 = !var19;
-var17 = var20;
-goto RET_LABEL18;
-RET_LABEL18:(void)0;
+var18 = !var17;
+var15 = var18;
+goto RET_LABEL16;
+RET_LABEL16:(void)0;
 }
-var16 = var17;
+var14 = var15;
 }
-if (var16){
+if (var14){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwmeth,self) on <var_n_kwmeth:nullable TKwmeth(TKwmeth)> */
 var_n_kwmeth->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwmeth:nullable TKwmeth(TKwmeth)> */
-RET_LABEL21:(void)0;
+RET_LABEL19:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwinit].val = var_n_kwinit; /* _n_kwinit on <self:AMethPropdef> */
-var22 = NULL;
 if (var_n_kwinit == NULL) {
-var23 = 0; /* is null */
+var20 = 0; /* is null */
 } else {
-var23 = 1; /* arg is null and recv is not */
+var20 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwinit,var22) on <var_n_kwinit:nullable TKwinit> */
-var_other = var22;
+{ /* Inline kernel#Object#!= (var_n_kwinit,((val*)NULL)) on <var_n_kwinit:nullable TKwinit> */
+var_other = ((val*)NULL);
 {
-var26 = ((short int (*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwinit, var_other) /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/;
+var23 = ((short int(*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwinit, var_other); /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/
 }
-var27 = !var26;
-var24 = var27;
-goto RET_LABEL25;
-RET_LABEL25:(void)0;
+var24 = !var23;
+var21 = var24;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
 }
-var23 = var24;
+var20 = var21;
 }
-if (var23){
+if (var20){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwinit,self) on <var_n_kwinit:nullable TKwinit(TKwinit)> */
 var_n_kwinit->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwinit:nullable TKwinit(TKwinit)> */
-RET_LABEL28:(void)0;
+RET_LABEL25:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwnew].val = var_n_kwnew; /* _n_kwnew on <self:AMethPropdef> */
-var29 = NULL;
 if (var_n_kwnew == NULL) {
-var30 = 0; /* is null */
+var26 = 0; /* is null */
 } else {
-var30 = 1; /* arg is null and recv is not */
+var26 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_kwnew,var29) on <var_n_kwnew:nullable TKwnew> */
-var_other = var29;
+{ /* Inline kernel#Object#!= (var_n_kwnew,((val*)NULL)) on <var_n_kwnew:nullable TKwnew> */
+var_other = ((val*)NULL);
 {
-var33 = ((short int (*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwnew, var_other) /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/;
+var29 = ((short int(*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwnew, var_other); /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/
 }
-var34 = !var33;
-var31 = var34;
-goto RET_LABEL32;
-RET_LABEL32:(void)0;
+var30 = !var29;
+var27 = var30;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
 }
-var30 = var31;
+var26 = var27;
 }
-if (var30){
+if (var26){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_kwnew,self) on <var_n_kwnew:nullable TKwnew(TKwnew)> */
 var_n_kwnew->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnew:nullable TKwnew(TKwnew)> */
-RET_LABEL35:(void)0;
+RET_LABEL31:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AMethPropdef> */
-var36 = NULL;
 if (var_n_methid == NULL) {
-var37 = 0; /* is null */
+var32 = 0; /* is null */
 } else {
-var37 = 1; /* arg is null and recv is not */
+var32 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_methid,var36) on <var_n_methid:nullable AMethid> */
-var_other = var36;
+{ /* Inline kernel#Object#!= (var_n_methid,((val*)NULL)) on <var_n_methid:nullable AMethid> */
+var_other = ((val*)NULL);
 {
-var40 = ((short int (*)(val* self, val* p0))(var_n_methid->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_methid, var_other) /* == on <var_n_methid:nullable AMethid(AMethid)>*/;
+var35 = ((short int(*)(val* self, val* p0))(var_n_methid->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_methid, var_other); /* == on <var_n_methid:nullable AMethid(AMethid)>*/
 }
-var41 = !var40;
-var38 = var41;
-goto RET_LABEL39;
-RET_LABEL39:(void)0;
+var36 = !var35;
+var33 = var36;
+goto RET_LABEL34;
+RET_LABEL34:(void)0;
 }
-var37 = var38;
+var32 = var33;
 }
-if (var37){
+if (var32){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid(AMethid)> */
 var_n_methid->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid(AMethid)> */
-RET_LABEL42:(void)0;
+RET_LABEL37:(void)0;
 }
 }
 } else {
 }
 if (unlikely(var_n_signature == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1148);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1143);
+fatal_exit(1);
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AMethPropdef> */
 if (var_n_signature == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1149);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1144);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_n_signature,self) on <var_n_signature:nullable ASignature> */
 if (unlikely(var_n_signature == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_n_signature->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_signature:nullable ASignature> */
-RET_LABEL43:(void)0;
+RET_LABEL38:(void)0;
 }
 }
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AMethPropdef> */
-var44 = NULL;
 if (var_n_annotations == NULL) {
-var45 = 0; /* is null */
+var39 = 0; /* is null */
 } else {
-var45 = 1; /* arg is null and recv is not */
+var39 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_annotations,var44) on <var_n_annotations:nullable AAnnotations> */
-var_other = var44;
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var48 = ((short int (*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
+var42 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
-var49 = !var48;
-var46 = var49;
-goto RET_LABEL47;
-RET_LABEL47:(void)0;
+var43 = !var42;
+var40 = var43;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
 }
-var45 = var46;
+var39 = var40;
 }
-if (var45){
+if (var39){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
-RET_LABEL50:(void)0;
+RET_LABEL44:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_extern_calls].val = var_n_extern_calls; /* _n_extern_calls on <self:AMethPropdef> */
-var51 = NULL;
 if (var_n_extern_calls == NULL) {
-var52 = 0; /* is null */
+var45 = 0; /* is null */
 } else {
-var52 = 1; /* arg is null and recv is not */
+var45 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_extern_calls,var51) on <var_n_extern_calls:nullable AExternCalls> */
-var_other = var51;
+{ /* Inline kernel#Object#!= (var_n_extern_calls,((val*)NULL)) on <var_n_extern_calls:nullable AExternCalls> */
+var_other = ((val*)NULL);
 {
-var55 = ((short int (*)(val* self, val* p0))(var_n_extern_calls->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_calls, var_other) /* == on <var_n_extern_calls:nullable AExternCalls(AExternCalls)>*/;
+var48 = ((short int(*)(val* self, val* p0))(var_n_extern_calls->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_calls, var_other); /* == on <var_n_extern_calls:nullable AExternCalls(AExternCalls)>*/
 }
-var56 = !var55;
-var53 = var56;
-goto RET_LABEL54;
-RET_LABEL54:(void)0;
+var49 = !var48;
+var46 = var49;
+goto RET_LABEL47;
+RET_LABEL47:(void)0;
 }
-var52 = var53;
+var45 = var46;
 }
-if (var52){
+if (var45){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_extern_calls,self) on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
 var_n_extern_calls->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
-RET_LABEL57:(void)0;
+RET_LABEL50:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_extern_code_block].val = var_n_extern_code_block; /* _n_extern_code_block on <self:AMethPropdef> */
-var58 = NULL;
 if (var_n_extern_code_block == NULL) {
-var59 = 0; /* is null */
+var51 = 0; /* is null */
 } else {
-var59 = 1; /* arg is null and recv is not */
+var51 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_extern_code_block,var58) on <var_n_extern_code_block:nullable AExternCodeBlock> */
-var_other = var58;
+{ /* Inline kernel#Object#!= (var_n_extern_code_block,((val*)NULL)) on <var_n_extern_code_block:nullable AExternCodeBlock> */
+var_other = ((val*)NULL);
 {
-var62 = ((short int (*)(val* self, val* p0))(var_n_extern_code_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_code_block, var_other) /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
+var54 = ((short int(*)(val* self, val* p0))(var_n_extern_code_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_extern_code_block, var_other); /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/
 }
-var63 = !var62;
-var60 = var63;
-goto RET_LABEL61;
-RET_LABEL61:(void)0;
+var55 = !var54;
+var52 = var55;
+goto RET_LABEL53;
+RET_LABEL53:(void)0;
 }
-var59 = var60;
+var51 = var52;
 }
-if (var59){
+if (var51){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_block,self) on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
 var_n_extern_code_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
-RET_LABEL64:(void)0;
+RET_LABEL56:(void)0;
+}
+}
+} else {
+}
+self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AMethPropdef> */
+if (var_n_kwdo == NULL) {
+var57 = 0; /* is null */
+} else {
+var57 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_kwdo,((val*)NULL)) on <var_n_kwdo:nullable TKwdo> */
+var_other = ((val*)NULL);
+{
+var60 = ((short int(*)(val* self, val* p0))(var_n_kwdo->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwdo, var_other); /* == on <var_n_kwdo:nullable TKwdo(TKwdo)>*/
+}
+var61 = !var60;
+var58 = var61;
+goto RET_LABEL59;
+RET_LABEL59:(void)0;
+}
+var57 = var58;
+}
+if (var57){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo(TKwdo)> */
+var_n_kwdo->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo(TKwdo)> */
+RET_LABEL62:(void)0;
 }
 }
 } else {
 }
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AMethPropdef> */
-var65 = NULL;
 if (var_n_block == NULL) {
-var66 = 0; /* is null */
+var63 = 0; /* is null */
 } else {
-var66 = 1; /* arg is null and recv is not */
+var63 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_n_block,var65) on <var_n_block:nullable AExpr> */
-var_other = var65;
+{ /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var69 = ((short int (*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
+var66 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
 }
-var70 = !var69;
-var67 = var70;
-goto RET_LABEL68;
-RET_LABEL68:(void)0;
+var67 = !var66;
+var64 = var67;
+goto RET_LABEL65;
+RET_LABEL65:(void)0;
 }
-var66 = var67;
+var63 = var64;
 }
-if (var66){
+if (var63){
 {
 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
+RET_LABEL68:(void)0;
+}
+}
+} else {
+}
+self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwend].val = var_n_kwend; /* _n_kwend on <self:AMethPropdef> */
+if (var_n_kwend == NULL) {
+var69 = 0; /* is null */
+} else {
+var69 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_kwend,((val*)NULL)) on <var_n_kwend:nullable TKwend> */
+var_other = ((val*)NULL);
+{
+var72 = ((short int(*)(val* self, val* p0))(var_n_kwend->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwend, var_other); /* == on <var_n_kwend:nullable TKwend(TKwend)>*/
+}
+var73 = !var72;
+var70 = var73;
+goto RET_LABEL71;
 RET_LABEL71:(void)0;
 }
+var69 = var70;
+}
+if (var69){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
+var_n_kwend->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
+RET_LABEL74:(void)0;
+}
 }
 } else {
 }
@@ -8065,7 +8231,7 @@ short int var114 /* : Bool */;
 int cltype115;
 int idtype116;
 const char* var_class_name117;
-val* var118 /* : nullable AExpr */;
+val* var118 /* : nullable TKwdo */;
 short int var119 /* : Bool */;
 short int var120 /* : Bool */;
 short int var122 /* : Bool */;
@@ -8074,6 +8240,24 @@ short int var125 /* : Bool */;
 int cltype126;
 int idtype127;
 const char* var_class_name128;
+val* var129 /* : nullable AExpr */;
+short int var130 /* : Bool */;
+short int var131 /* : Bool */;
+short int var133 /* : Bool */;
+short int var135 /* : Bool */;
+short int var136 /* : Bool */;
+int cltype137;
+int idtype138;
+const char* var_class_name139;
+val* var140 /* : nullable TKwend */;
+short int var141 /* : Bool */;
+short int var142 /* : Bool */;
+short int var144 /* : Bool */;
+short int var146 /* : Bool */;
+short int var147 /* : Bool */;
+int cltype148;
+int idtype149;
+const char* var_class_name150;
 var_old_child = p0;
 var_new_child = p1;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AMethPropdef> */
@@ -8112,8 +8296,8 @@ var7 = var_new_child->type->type_table[cltype] == idtype;
 if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1163);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1162);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_doc= on <self:AMethPropdef>*/
@@ -8157,11 +8341,11 @@ var15 = var_new_child->type->type_table[cltype16] == idtype17;
 if (unlikely(!var15)) {
 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1167);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1166);
+fatal_exit(1);
 }
 {
-((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ADefinition__n_kwredef_61d]))(self, var_new_child) /* n_kwredef= on <self:AMethPropdef>*/;
+((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ADefinition__n_kwredef_61d]))(self, var_new_child); /* n_kwredef= on <self:AMethPropdef>*/
 }
 goto RET_LABEL;
 } else {
@@ -8202,8 +8386,8 @@ var26 = var_new_child->type->type_table[cltype27] == idtype28;
 if (unlikely(!var26)) {
 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1171);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1170);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_visibility= on <self:AMethPropdef>*/
@@ -8247,8 +8431,8 @@ var37 = var_new_child->type->type_table[cltype38] == idtype39;
 if (unlikely(!var37)) {
 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwmeth", var_class_name40);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1175);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1174);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_kwmeth_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_kwmeth= on <self:AMethPropdef>*/
@@ -8292,8 +8476,8 @@ var48 = var_new_child->type->type_table[cltype49] == idtype50;
 if (unlikely(!var48)) {
 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwinit", var_class_name51);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1179);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1178);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_kwinit_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_kwinit= on <self:AMethPropdef>*/
@@ -8337,8 +8521,8 @@ var59 = var_new_child->type->type_table[cltype60] == idtype61;
 if (unlikely(!var59)) {
 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwnew", var_class_name62);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1183);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1182);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_kwnew_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_kwnew= on <self:AMethPropdef>*/
@@ -8382,8 +8566,8 @@ var70 = var_new_child->type->type_table[cltype71] == idtype72;
 if (unlikely(!var70)) {
 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AMethid", var_class_name73);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1187);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1186);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_methid_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_methid= on <self:AMethPropdef>*/
@@ -8427,8 +8611,8 @@ var81 = var_new_child->type->type_table[cltype82] == idtype83;
 if (unlikely(!var81)) {
 var_class_name84 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ASignature", var_class_name84);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1191);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1190);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_signature_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_signature= on <self:AMethPropdef>*/
@@ -8472,8 +8656,8 @@ var92 = var_new_child->type->type_table[cltype93] == idtype94;
 if (unlikely(!var92)) {
 var_class_name95 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name95);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1195);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1194);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_annotations= on <self:AMethPropdef>*/
@@ -8517,8 +8701,8 @@ var103 = var_new_child->type->type_table[cltype104] == idtype105;
 if (unlikely(!var103)) {
 var_class_name106 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCalls", var_class_name106);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1199);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1198);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_extern_calls_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_extern_calls= on <self:AMethPropdef>*/
@@ -8562,8 +8746,8 @@ var114 = var_new_child->type->type_table[cltype115] == idtype116;
 if (unlikely(!var114)) {
 var_class_name117 = var_new_child == NULL ? "null" : var_new_child->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCodeBlock", var_class_name117);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1203);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1202);
+fatal_exit(1);
 }
 {
 nit__parser_prod___AMethPropdef___n_extern_code_block_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_extern_code_block= on <self:AMethPropdef>*/
@@ -8571,14 +8755,14 @@ nit__parser_prod___AMethPropdef___n_extern_code_block_61d(self, var_new_child);
 goto RET_LABEL;
 } else {
 }
-var118 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
+var118 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwdo].val; /* _n_kwdo on <self:AMethPropdef> */
 if (var118 == NULL) {
 var119 = 0; /* <var_old_child:ANode> cannot be null */
 } else {
-{ /* Inline kernel#Object#== (var118,var_old_child) on <var118:nullable AExpr> */
+{ /* Inline kernel#Object#== (var118,var_old_child) on <var118:nullable TKwdo> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var118,var_other) on <var118:nullable AExpr(AExpr)> */
+{ /* Inline kernel#Object#is_same_instance (var118,var_other) on <var118:nullable TKwdo(TKwdo)> */
 var124 = var118 == var_other;
 var122 = var124;
 goto RET_LABEL123;
@@ -8592,9 +8776,9 @@ RET_LABEL121:(void)0;
 var119 = var120;
 }
 if (var119){
-/* <var_new_child:nullable ANode> isa nullable AExpr */
-cltype126 = type_nullable__nit__AExpr.color;
-idtype127 = type_nullable__nit__AExpr.id;
+/* <var_new_child:nullable ANode> isa nullable TKwdo */
+cltype126 = type_nullable__nit__TKwdo.color;
+idtype127 = type_nullable__nit__TKwdo.id;
 if(var_new_child == NULL) {
 var125 = 1;
 } else {
@@ -8606,12 +8790,102 @@ var125 = var_new_child->type->type_table[cltype126] == idtype127;
 }
 if (unlikely(!var125)) {
 var_class_name128 = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name128);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1207);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwdo", var_class_name128);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1206);
+fatal_exit(1);
+}
+{
+nit__parser_prod___AMethPropdef___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_kwdo= on <self:AMethPropdef>*/
+}
+goto RET_LABEL;
+} else {
+}
+var129 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
+if (var129 == NULL) {
+var130 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var129,var_old_child) on <var129:nullable AExpr> */
+var_other = var_old_child;
+{
+{ /* Inline kernel#Object#is_same_instance (var129,var_other) on <var129:nullable AExpr(AExpr)> */
+var135 = var129 == var_other;
+var133 = var135;
+goto RET_LABEL134;
+RET_LABEL134:(void)0;
+}
+}
+var131 = var133;
+goto RET_LABEL132;
+RET_LABEL132:(void)0;
+}
+var130 = var131;
+}
+if (var130){
+/* <var_new_child:nullable ANode> isa nullable AExpr */
+cltype137 = type_nullable__nit__AExpr.color;
+idtype138 = type_nullable__nit__AExpr.id;
+if(var_new_child == NULL) {
+var136 = 1;
+} else {
+if(cltype137 >= var_new_child->type->table_size) {
+var136 = 0;
+} else {
+var136 = var_new_child->type->type_table[cltype137] == idtype138;
+}
+}
+if (unlikely(!var136)) {
+var_class_name139 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name139);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1210);
+fatal_exit(1);
+}
+{
+((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__AMethPropdef__n_block_61d]))(self, var_new_child); /* n_block= on <self:AMethPropdef>*/
+}
+goto RET_LABEL;
+} else {
+}
+var140 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwend].val; /* _n_kwend on <self:AMethPropdef> */
+if (var140 == NULL) {
+var141 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var140,var_old_child) on <var140:nullable TKwend> */
+var_other = var_old_child;
+{
+{ /* Inline kernel#Object#is_same_instance (var140,var_other) on <var140:nullable TKwend(TKwend)> */
+var146 = var140 == var_other;
+var144 = var146;
+goto RET_LABEL145;
+RET_LABEL145:(void)0;
+}
+}
+var142 = var144;
+goto RET_LABEL143;
+RET_LABEL143:(void)0;
+}
+var141 = var142;
+}
+if (var141){
+/* <var_new_child:nullable ANode> isa nullable TKwend */
+cltype148 = type_nullable__nit__TKwend.color;
+idtype149 = type_nullable__nit__TKwend.id;
+if(var_new_child == NULL) {
+var147 = 1;
+} else {
+if(cltype148 >= var_new_child->type->table_size) {
+var147 = 0;
+} else {
+var147 = var_new_child->type->type_table[cltype148] == idtype149;
+}
+}
+if (unlikely(!var147)) {
+var_class_name150 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name150);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1214);
+fatal_exit(1);
 }
 {
-((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__AMethPropdef__n_block_61d]))(self, var_new_child) /* n_block= on <self:AMethPropdef>*/;
+nit__parser_prod___AMethPropdef___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#AMethPropdef#n_kwend= on <self:AMethPropdef>*/
 }
 goto RET_LABEL;
 } else {
@@ -8621,38 +8895,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_doc= for (self: AMethPropdef, nullable ADoc) */
 void nit__parser_prod___AMethPropdef___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
 val* var_node /* var node: nullable ADoc */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8662,38 +8934,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_kwredef= for (self: AMethPropdef, nullable TKwredef) */
 void nit__parser_prod___AMethPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwredef */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8707,14 +8977,14 @@ var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:AMethPropdef> */
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1225);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1232);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
 RET_LABEL1:(void)0;
@@ -8725,38 +8995,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_kwmeth= for (self: AMethPropdef, nullable TKwmeth) */
 void nit__parser_prod___AMethPropdef___n_kwmeth_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwmeth */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwmeth].val = var_node; /* _n_kwmeth on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwmeth> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwmeth> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwmeth(TKwmeth)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwmeth(TKwmeth)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwmeth(TKwmeth)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwmeth(TKwmeth)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8766,38 +9034,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_kwinit= for (self: AMethPropdef, nullable TKwinit) */
 void nit__parser_prod___AMethPropdef___n_kwinit_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwinit */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwinit].val = var_node; /* _n_kwinit on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwinit> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwinit> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwinit(TKwinit)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwinit(TKwinit)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwinit(TKwinit)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwinit(TKwinit)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8807,38 +9073,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_kwnew= for (self: AMethPropdef, nullable TKwnew) */
 void nit__parser_prod___AMethPropdef___n_kwnew_61d(val* self, val* p0) {
 val* var_node /* var node: nullable TKwnew */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwnew].val = var_node; /* _n_kwnew on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwnew> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwnew> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwnew(TKwnew)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwnew(TKwnew)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwnew(TKwnew)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwnew(TKwnew)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8848,38 +9112,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_methid= for (self: AMethPropdef, nullable AMethid) */
 void nit__parser_prod___AMethPropdef___n_methid_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AMethid */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AMethid> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AMethid> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AMethid(AMethid)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AMethid(AMethid)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AMethid(AMethid)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AMethid(AMethid)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8893,14 +9155,14 @@ var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AMethPropdef> */
 if (var_node == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1250);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1257);
+fatal_exit(1);
 } else {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ASignature> */
 if (unlikely(var_node == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ASignature> */
 RET_LABEL1:(void)0;
@@ -8911,38 +9173,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_annotations= for (self: AMethPropdef, nullable AAnnotations) */
 void nit__parser_prod___AMethPropdef___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AAnnotations */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8952,38 +9212,36 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_extern_calls= for (self: AMethPropdef, nullable AExternCalls) */
 void nit__parser_prod___AMethPropdef___n_extern_calls_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExternCalls */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_extern_calls].val = var_node; /* _n_extern_calls on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCalls> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExternCalls> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCalls(AExternCalls)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExternCalls(AExternCalls)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCalls(AExternCalls)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCalls(AExternCalls)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -8993,38 +9251,75 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_extern_code_block= for (self: AMethPropdef, nullable AExternCodeBlock) */
 void nit__parser_prod___AMethPropdef___n_extern_code_block_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExternCodeBlock */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_extern_code_block].val = var_node; /* _n_extern_code_block on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCodeBlock> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExternCodeBlock> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AMethPropdef#n_kwdo= for (self: AMethPropdef, nullable TKwdo) */
+void nit__parser_prod___AMethPropdef___n_kwdo_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TKwdo */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwdo].val = var_node; /* _n_kwdo on <self:AMethPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwdo> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwdo(TKwdo)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwdo(TKwdo)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwdo(TKwdo)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -9034,38 +9329,75 @@ RET_LABEL:;
 /* method parser_prod#AMethPropdef#n_block= for (self: AMethPropdef, nullable AExpr) */
 void nit__parser_prod___AMethPropdef___n_block_61d(val* self, val* p0) {
 val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
+short int var /* : Bool */;
 short int var1 /* : Bool */;
-short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-short int var5 /* : Bool */;
 var_node = p0;
 self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val = var_node; /* _n_block on <self:AMethPropdef> */
-var = NULL;
 if (var_node == NULL) {
-var1 = 0; /* is null */
+var = 0; /* is null */
 } else {
-var1 = 1; /* arg is null and recv is not */
+var = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
-var_other = var;
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
+var_other = ((val*)NULL);
 {
-var4 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
 }
-var5 = !var4;
-var2 = var5;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
 }
-var1 = var2;
+var = var1;
 }
-if (var1){
+if (var){
 {
 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
-RET_LABEL6:(void)0;
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod#AMethPropdef#n_kwend= for (self: AMethPropdef, nullable TKwend) */
+void nit__parser_prod___AMethPropdef___n_kwend_61d(val* self, val* p0) {
+val* var_node /* var node: nullable TKwend */;
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+var_node = p0;
+self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwend].val = var_node; /* _n_kwend on <self:AMethPropdef> */
+if (var_node == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwend> */
+var_other = ((val*)NULL);
+{
+var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwend(TKwend)>*/
+}
+var4 = !var3;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+var = var1;
+}
+if (var){
+{
+{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
+var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
+RET_LABEL5:(void)0;
 }
 }
 } else {
@@ -9086,7 +9418,9 @@ val* var7 /* : nullable ASignature */;
 val* var8 /* : nullable AAnnotations */;
 val* var9 /* : nullable AExternCalls */;
 val* var10 /* : nullable AExternCodeBlock */;
-val* var11 /* : nullable AExpr */;
+val* var11 /* : nullable TKwdo */;
+val* var12 /* : nullable AExpr */;
+val* var13 /* : nullable TKwend */;
 var_v = p0;
 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AMethPropdef> */
 {
@@ -9132,849 +9466,533 @@ var10 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_extern_code_block]
 {
 nit___nit__Visitor___enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-var11 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
+var11 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwdo].val; /* _n_kwdo on <self:AMethPropdef> */
 {
 nit___nit__Visitor___enter_visit(var_v, var11); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
+var12 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var12); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
+var13 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwend].val; /* _n_kwend on <self:AMethPropdef> */
+{
+nit___nit__Visitor___enter_visit(var_v, var13); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+}
 RET_LABEL:;
 }
-/* method parser_prod#AIdMethid#init_aidmethid for (self: AIdMethid, nullable TId) */
-void nit__parser_prod___AIdMethid___init_aidmethid(val* self, val* p0) {
-val* var_n_id /* var n_id: nullable TId */;
-var_n_id = p0;
-if (unlikely(var_n_id == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1295);
-show_backtrace(1);
-}
-self->attrs[COLOR_nit__parser_nodes__AIdMethid___n_id].val = var_n_id; /* _n_id on <self:AIdMethid> */
-if (var_n_id == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1296);
-show_backtrace(1);
-} else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
-if (unlikely(var_n_id == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#AIdMethid#replace_child for (self: AIdMethid, ANode, nullable ANode) */
-void nit__parser_prod___AIdMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TId */;
-short int var1 /* : Bool */;
+/* method parser_prod#ASuperPropdef#init_asuperpropdef for (self: ASuperPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwsuper, nullable AType, nullable AAnnotations) */
+void nit__parser_prod___ASuperPropdef___init_asuperpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
+val* var_n_doc /* var n_doc: nullable ADoc */;
+val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
+val* var_n_visibility /* var n_visibility: nullable AVisibility */;
+val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
+val* var_n_type /* var n_type: nullable AType */;
+val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
+short int var /* : Bool */;
+short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
+short int var4 /* : Bool */;
 short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1301);
-show_backtrace(1);
-}
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
-var_other = var_old_child;
+short int var7 /* : Bool */;
+short int var8 /* : Bool */;
+short int var10 /* : Bool */;
+short int var11 /* : Bool */;
+short int var16 /* : Bool */;
+short int var17 /* : Bool */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
 {
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-}
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-}
-if (var1){
-/* <var_new_child:nullable ANode> isa TId */
-cltype = type_nit__TId.color;
-idtype = type_nit__TId.id;
-if(var_new_child == NULL) {
-var6 = 0;
-} else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
-} else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
-}
-}
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1302);
-show_backtrace(1);
+{ /* Inline kernel#Object#init (self) on <self:ASuperPropdef> */
+RET_LABEL1:(void)0;
 }
-{
-nit__parser_prod___AIdMethid___n_id_61d(self, var_new_child); /* Direct call parser_prod#AIdMethid#n_id= on <self:AIdMethid>*/
 }
-goto RET_LABEL;
+var_n_doc = p0;
+var_n_kwredef = p1;
+var_n_visibility = p2;
+var_n_kwsuper = p3;
+var_n_type = p4;
+var_n_annotations = p5;
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:ASuperPropdef> */
+if (var_n_doc == NULL) {
+var = 0; /* is null */
 } else {
+var = 1; /* arg is null and recv is not */
 }
-RET_LABEL:;
-}
-/* method parser_prod#AIdMethid#n_id= for (self: AIdMethid, TId) */
-void nit__parser_prod___AIdMethid___n_id_61d(val* self, val* p0) {
-val* var_node /* var node: TId */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__AIdMethid___n_id].val = var_node; /* _n_id on <self:AIdMethid> */
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
+var_other = ((val*)NULL);
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
-RET_LABEL1:(void)0;
-}
+var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
 }
-RET_LABEL:;
+var5 = !var4;
+var2 = var5;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
-/* method parser_prod#AIdMethid#visit_all for (self: AIdMethid, Visitor) */
-void nit__parser_prod___AIdMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TId */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1316);
-show_backtrace(1);
+var = var2;
 }
+if (var){
 {
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
-}
-RET_LABEL:;
+{ /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
+var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
+RET_LABEL6:(void)0;
 }
-/* method parser_prod#APlusMethid#init_aplusmethid for (self: APlusMethid, nullable TPlus) */
-void nit__parser_prod___APlusMethid___init_aplusmethid(val* self, val* p0) {
-val* var_n_plus /* var n_plus: nullable TPlus */;
-var_n_plus = p0;
-if (unlikely(var_n_plus == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1324);
-show_backtrace(1);
 }
-self->attrs[COLOR_nit__parser_nodes__APlusMethid___n_plus].val = var_n_plus; /* _n_plus on <self:APlusMethid> */
-if (var_n_plus == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1325);
-show_backtrace(1);
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_plus,self) on <var_n_plus:nullable TPlus> */
-if (unlikely(var_n_plus == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_plus->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_plus:nullable TPlus> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#APlusMethid#replace_child for (self: APlusMethid, ANode, nullable ANode) */
-void nit__parser_prod___APlusMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TPlus */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1330);
-show_backtrace(1);
 }
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TPlus> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPlus> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-}
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-}
-if (var1){
-/* <var_new_child:nullable ANode> isa TPlus */
-cltype = type_nit__TPlus.color;
-idtype = type_nit__TPlus.id;
-if(var_new_child == NULL) {
-var6 = 0;
-} else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:ASuperPropdef> */
+if (var_n_kwredef == NULL) {
+var7 = 0; /* is null */
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
-}
-}
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPlus", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1331);
-show_backtrace(1);
+var7 = 1; /* arg is null and recv is not */
 }
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
+var_other = ((val*)NULL);
 {
-nit__parser_prod___APlusMethid___n_plus_61d(self, var_new_child); /* Direct call parser_prod#APlusMethid#n_plus= on <self:APlusMethid>*/
+var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
 }
-goto RET_LABEL;
-} else {
+var11 = !var10;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
 }
-RET_LABEL:;
+var7 = var8;
 }
-/* method parser_prod#APlusMethid#n_plus= for (self: APlusMethid, TPlus) */
-void nit__parser_prod___APlusMethid___n_plus_61d(val* self, val* p0) {
-val* var_node /* var node: TPlus */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__APlusMethid___n_plus].val = var_node; /* _n_plus on <self:APlusMethid> */
+if (var7){
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPlus> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPlus> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#APlusMethid#visit_all for (self: APlusMethid, Visitor) */
-void nit__parser_prod___APlusMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TPlus */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1345);
-show_backtrace(1);
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
+var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
+RET_LABEL12:(void)0;
 }
-{
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-RET_LABEL:;
+} else {
 }
-/* method parser_prod#AMinusMethid#init_aminusmethid for (self: AMinusMethid, nullable TMinus) */
-void nit__parser_prod___AMinusMethid___init_aminusmethid(val* self, val* p0) {
-val* var_n_minus /* var n_minus: nullable TMinus */;
-var_n_minus = p0;
-if (unlikely(var_n_minus == NULL)) {
+if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1353);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1323);
+fatal_exit(1);
 }
-self->attrs[COLOR_nit__parser_nodes__AMinusMethid___n_minus].val = var_n_minus; /* _n_minus on <self:AMinusMethid> */
-if (var_n_minus == NULL) {
+self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:ASuperPropdef> */
+if (var_n_visibility == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1354);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1324);
+fatal_exit(1);
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_minus,self) on <var_n_minus:nullable TMinus> */
-if (unlikely(var_n_minus == NULL)) {
+{ /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
+if (unlikely(var_n_visibility == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_minus->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minus:nullable TMinus> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#AMinusMethid#replace_child for (self: AMinusMethid, ANode, nullable ANode) */
-void nit__parser_prod___AMinusMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TMinus */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1359);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TMinus> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinus> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-}
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-}
-if (var1){
-/* <var_new_child:nullable ANode> isa TMinus */
-cltype = type_nit__TMinus.color;
-idtype = type_nit__TMinus.id;
-if(var_new_child == NULL) {
-var6 = 0;
-} else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
-} else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
-}
-}
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1360);
-show_backtrace(1);
-}
-{
-nit__parser_prod___AMinusMethid___n_minus_61d(self, var_new_child); /* Direct call parser_prod#AMinusMethid#n_minus= on <self:AMinusMethid>*/
-}
-goto RET_LABEL;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AMinusMethid#n_minus= for (self: AMinusMethid, TMinus) */
-void nit__parser_prod___AMinusMethid___n_minus_61d(val* self, val* p0) {
-val* var_node /* var node: TMinus */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__AMinusMethid___n_minus].val = var_node; /* _n_minus on <self:AMinusMethid> */
-{
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinus> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinus> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#AMinusMethid#visit_all for (self: AMinusMethid, Visitor) */
-void nit__parser_prod___AMinusMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TMinus */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1374);
-show_backtrace(1);
-}
-{
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
+RET_LABEL13:(void)0;
 }
-RET_LABEL:;
 }
-/* method parser_prod#AStarMethid#init_astarmethid for (self: AStarMethid, nullable TStar) */
-void nit__parser_prod___AStarMethid___init_astarmethid(val* self, val* p0) {
-val* var_n_star /* var n_star: nullable TStar */;
-var_n_star = p0;
-if (unlikely(var_n_star == NULL)) {
+if (unlikely(var_n_kwsuper == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1382);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1325);
+fatal_exit(1);
 }
-self->attrs[COLOR_nit__parser_nodes__AStarMethid___n_star].val = var_n_star; /* _n_star on <self:AStarMethid> */
-if (var_n_star == NULL) {
+self->attrs[COLOR_nit__parser_nodes__ASuperPropdef___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperPropdef> */
+if (var_n_kwsuper == NULL) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1383);
-show_backtrace(1);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1326);
+fatal_exit(1);
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_star,self) on <var_n_star:nullable TStar> */
-if (unlikely(var_n_star == NULL)) {
+{ /* Inline parser_nodes#ANode#parent= (var_n_kwsuper,self) on <var_n_kwsuper:nullable TKwsuper> */
+if (unlikely(var_n_kwsuper == NULL)) {
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_star->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_star:nullable TStar> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#AStarMethid#replace_child for (self: AStarMethid, ANode, nullable ANode) */
-void nit__parser_prod___AStarMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TStar */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1388);
-show_backtrace(1);
-}
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TStar> */
-var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStar> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
+var_n_kwsuper->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwsuper:nullable TKwsuper> */
+RET_LABEL14:(void)0;
 }
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
 }
+if (unlikely(var_n_type == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1327);
+fatal_exit(1);
 }
-if (var1){
-/* <var_new_child:nullable ANode> isa TStar */
-cltype = type_nit__TStar.color;
-idtype = type_nit__TStar.id;
-if(var_new_child == NULL) {
-var6 = 0;
-} else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+self->attrs[COLOR_nit__parser_nodes__ASuperPropdef___n_type].val = var_n_type; /* _n_type on <self:ASuperPropdef> */
+if (var_n_type == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1328);
+fatal_exit(1);
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
-}
+{ /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
+if (unlikely(var_n_type == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
+fatal_exit(1);
 }
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStar", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1389);
-show_backtrace(1);
+var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
+RET_LABEL15:(void)0;
 }
-{
-nit__parser_prod___AStarMethid___n_star_61d(self, var_new_child); /* Direct call parser_prod#AStarMethid#n_star= on <self:AStarMethid>*/
 }
-goto RET_LABEL;
+self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASuperPropdef> */
+if (var_n_annotations == NULL) {
+var16 = 0; /* is null */
 } else {
+var16 = 1; /* arg is null and recv is not */
 }
-RET_LABEL:;
-}
-/* method parser_prod#AStarMethid#n_star= for (self: AStarMethid, TStar) */
-void nit__parser_prod___AStarMethid___n_star_61d(val* self, val* p0) {
-val* var_node /* var node: TStar */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__AStarMethid___n_star].val = var_node; /* _n_star on <self:AStarMethid> */
+if (0) {
+{ /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
+var_other = ((val*)NULL);
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStar> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStar> */
-RET_LABEL1:(void)0;
-}
+var19 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
 }
-RET_LABEL:;
+var20 = !var19;
+var17 = var20;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
 }
-/* method parser_prod#AStarMethid#visit_all for (self: AStarMethid, Visitor) */
-void nit__parser_prod___AStarMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TStar */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1403);
-show_backtrace(1);
+var16 = var17;
 }
+if (var16){
 {
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
-}
-RET_LABEL:;
+{ /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+RET_LABEL21:(void)0;
 }
-/* method parser_prod#AStarstarMethid#init_astarstarmethid for (self: AStarstarMethid, nullable TStarstar) */
-void nit__parser_prod___AStarstarMethid___init_astarstarmethid(val* self, val* p0) {
-val* var_n_starstar /* var n_starstar: nullable TStarstar */;
-var_n_starstar = p0;
-if (unlikely(var_n_starstar == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1411);
-show_backtrace(1);
 }
-self->attrs[COLOR_nit__parser_nodes__AStarstarMethid___n_starstar].val = var_n_starstar; /* _n_starstar on <self:AStarstarMethid> */
-if (var_n_starstar == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1412);
-show_backtrace(1);
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_starstar,self) on <var_n_starstar:nullable TStarstar> */
-if (unlikely(var_n_starstar == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
-}
-var_n_starstar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_starstar:nullable TStarstar> */
-RET_LABEL1:(void)0;
-}
 }
 RET_LABEL:;
 }
-/* method parser_prod#AStarstarMethid#replace_child for (self: AStarstarMethid, ANode, nullable ANode) */
-void nit__parser_prod___AStarstarMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
+/* method parser_prod#ASuperPropdef#replace_child for (self: ASuperPropdef, ANode, nullable ANode) */
+void nit__parser_prod___ASuperPropdef___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
 val* var_old_child /* var old_child: ANode */;
 val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TStarstar */;
+val* var /* : nullable ADoc */;
 short int var1 /* : Bool */;
+short int var2 /* : Bool */;
 val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
+short int var4 /* : Bool */;
 short int var6 /* : Bool */;
+short int var7 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
+val* var8 /* : nullable TKwredef */;
+short int var9 /* : Bool */;
+short int var10 /* : Bool */;
+short int var12 /* : Bool */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+const char* var_class_name18;
+val* var19 /* : nullable AVisibility */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
+short int var23 /* : Bool */;
+short int var25 /* : Bool */;
+short int var26 /* : Bool */;
+int cltype27;
+int idtype28;
+const char* var_class_name29;
+val* var30 /* : TKwsuper */;
+short int var31 /* : Bool */;
+short int var33 /* : Bool */;
+short int var35 /* : Bool */;
+short int var36 /* : Bool */;
+int cltype37;
+int idtype38;
+const char* var_class_name39;
+val* var40 /* : AType */;
+short int var41 /* : Bool */;
+short int var43 /* : Bool */;
+short int var45 /* : Bool */;
+short int var46 /* : Bool */;
+int cltype47;
+int idtype48;
+const char* var_class_name49;
+val* var50 /* : nullable AAnnotations */;
+short int var51 /* : Bool */;
+short int var52 /* : Bool */;
+short int var54 /* : Bool */;
+short int var56 /* : Bool */;
+short int var57 /* : Bool */;
+int cltype58;
+int idtype59;
+const char* var_class_name60;
 var_old_child = p0;
 var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__AStarstarMethid___n_starstar].val; /* _n_starstar on <self:AStarstarMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starstar");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1417);
-show_backtrace(1);
-}
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TStarstar> */
+var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:ASuperPropdef> */
+if (var == NULL) {
+var1 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
 var_other = var_old_child;
-{
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStarstar> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+{
+{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
+var6 = var == var_other;
+var4 = var6;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
 }
 }
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
+var1 = var2;
 }
 if (var1){
-/* <var_new_child:nullable ANode> isa TStarstar */
-cltype = type_nit__TStarstar.color;
-idtype = type_nit__TStarstar.id;
+/* <var_new_child:nullable ANode> isa nullable ADoc */
+cltype = type_nullable__nit__ADoc.color;
+idtype = type_nullable__nit__ADoc.id;
 if(var_new_child == NULL) {
-var6 = 0;
+var7 = 1;
 } else {
 if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+var7 = 0;
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
+var7 = var_new_child->type->type_table[cltype] == idtype;
 }
 }
-if (unlikely(!var6)) {
+if (unlikely(!var7)) {
 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarstar", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1418);
-show_backtrace(1);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1336);
+fatal_exit(1);
 }
 {
-nit__parser_prod___AStarstarMethid___n_starstar_61d(self, var_new_child); /* Direct call parser_prod#AStarstarMethid#n_starstar= on <self:AStarstarMethid>*/
+nit__parser_prod___ASuperPropdef___nit__parser_nodes__ADefinition__n_doc_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_doc= on <self:ASuperPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-RET_LABEL:;
-}
-/* method parser_prod#AStarstarMethid#n_starstar= for (self: AStarstarMethid, TStarstar) */
-void nit__parser_prod___AStarstarMethid___n_starstar_61d(val* self, val* p0) {
-val* var_node /* var node: TStarstar */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__AStarstarMethid___n_starstar].val = var_node; /* _n_starstar on <self:AStarstarMethid> */
+var8 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:ASuperPropdef> */
+if (var8 == NULL) {
+var9 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
+var_other = var_old_child;
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStarstar> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStarstar> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#AStarstarMethid#visit_all for (self: AStarstarMethid, Visitor) */
-void nit__parser_prod___AStarstarMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TStarstar */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__AStarstarMethid___n_starstar].val; /* _n_starstar on <self:AStarstarMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starstar");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1432);
-show_backtrace(1);
+{ /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
+var14 = var8 == var_other;
+var12 = var14;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
 }
-{
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
 }
-RET_LABEL:;
+var10 = var12;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
 }
-/* method parser_prod#ASlashMethid#init_aslashmethid for (self: ASlashMethid, nullable TSlash) */
-void nit__parser_prod___ASlashMethid___init_aslashmethid(val* self, val* p0) {
-val* var_n_slash /* var n_slash: nullable TSlash */;
-var_n_slash = p0;
-if (unlikely(var_n_slash == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1440);
-show_backtrace(1);
+var9 = var10;
 }
-self->attrs[COLOR_nit__parser_nodes__ASlashMethid___n_slash].val = var_n_slash; /* _n_slash on <self:ASlashMethid> */
-if (var_n_slash == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1441);
-show_backtrace(1);
+if (var9){
+/* <var_new_child:nullable ANode> isa nullable TKwredef */
+cltype16 = type_nullable__nit__TKwredef.color;
+idtype17 = type_nullable__nit__TKwredef.id;
+if(var_new_child == NULL) {
+var15 = 1;
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_slash,self) on <var_n_slash:nullable TSlash> */
-if (unlikely(var_n_slash == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+if(cltype16 >= var_new_child->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_new_child->type->type_table[cltype16] == idtype17;
 }
-var_n_slash->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_slash:nullable TSlash> */
-RET_LABEL1:(void)0;
 }
+if (unlikely(!var15)) {
+var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1340);
+fatal_exit(1);
 }
-RET_LABEL:;
+{
+nit__parser_prod___ASuperPropdef___nit__parser_nodes__ADefinition__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_kwredef= on <self:ASuperPropdef>*/
 }
-/* method parser_prod#ASlashMethid#replace_child for (self: ASlashMethid, ANode, nullable ANode) */
-void nit__parser_prod___ASlashMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TSlash */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1446);
-show_backtrace(1);
+goto RET_LABEL;
+} else {
 }
-{
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TSlash> */
+var19 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:ASuperPropdef> */
+if (var19 == NULL) {
+var20 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TSlash> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
+var25 = var19 == var_other;
+var23 = var25;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
 }
 }
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
 }
+var20 = var21;
 }
-if (var1){
-/* <var_new_child:nullable ANode> isa TSlash */
-cltype = type_nit__TSlash.color;
-idtype = type_nit__TSlash.id;
+if (var20){
+/* <var_new_child:nullable ANode> isa AVisibility */
+cltype27 = type_nit__AVisibility.color;
+idtype28 = type_nit__AVisibility.id;
 if(var_new_child == NULL) {
-var6 = 0;
+var26 = 0;
 } else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+if(cltype27 >= var_new_child->type->table_size) {
+var26 = 0;
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
+var26 = var_new_child->type->type_table[cltype27] == idtype28;
 }
 }
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TSlash", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1447);
-show_backtrace(1);
+if (unlikely(!var26)) {
+var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1344);
+fatal_exit(1);
 }
 {
-nit__parser_prod___ASlashMethid___n_slash_61d(self, var_new_child); /* Direct call parser_prod#ASlashMethid#n_slash= on <self:ASlashMethid>*/
+nit__parser_prod___ASuperPropdef___nit__parser_nodes__ADefinition__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_visibility= on <self:ASuperPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-RET_LABEL:;
+var30 = self->attrs[COLOR_nit__parser_nodes__ASuperPropdef___n_kwsuper].val; /* _n_kwsuper on <self:ASuperPropdef> */
+if (unlikely(var30 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1347);
+fatal_exit(1);
 }
-/* method parser_prod#ASlashMethid#n_slash= for (self: ASlashMethid, TSlash) */
-void nit__parser_prod___ASlashMethid___n_slash_61d(val* self, val* p0) {
-val* var_node /* var node: TSlash */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__ASlashMethid___n_slash].val = var_node; /* _n_slash on <self:ASlashMethid> */
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TSlash> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TSlash> */
-RET_LABEL1:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method parser_prod#ASlashMethid#visit_all for (self: ASlashMethid, Visitor) */
-void nit__parser_prod___ASlashMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TSlash */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1461);
-show_backtrace(1);
-}
+{ /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwsuper> */
+var_other = var_old_child;
 {
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+{ /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TKwsuper> */
+var35 = var30 == var_other;
+var33 = var35;
+goto RET_LABEL34;
+RET_LABEL34:(void)0;
 }
-RET_LABEL:;
 }
-/* method parser_prod#APercentMethid#init_apercentmethid for (self: APercentMethid, nullable TPercent) */
-void nit__parser_prod___APercentMethid___init_apercentmethid(val* self, val* p0) {
-val* var_n_percent /* var n_percent: nullable TPercent */;
-var_n_percent = p0;
-if (unlikely(var_n_percent == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1469);
-show_backtrace(1);
+var31 = var33;
+goto RET_LABEL32;
+RET_LABEL32:(void)0;
 }
-self->attrs[COLOR_nit__parser_nodes__APercentMethid___n_percent].val = var_n_percent; /* _n_percent on <self:APercentMethid> */
-if (var_n_percent == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1470);
-show_backtrace(1);
+}
+if (var31){
+/* <var_new_child:nullable ANode> isa TKwsuper */
+cltype37 = type_nit__TKwsuper.color;
+idtype38 = type_nit__TKwsuper.id;
+if(var_new_child == NULL) {
+var36 = 0;
 } else {
-{ /* Inline parser_nodes#ANode#parent= (var_n_percent,self) on <var_n_percent:nullable TPercent> */
-if (unlikely(var_n_percent == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
-show_backtrace(1);
+if(cltype37 >= var_new_child->type->table_size) {
+var36 = 0;
+} else {
+var36 = var_new_child->type->type_table[cltype37] == idtype38;
 }
-var_n_percent->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_percent:nullable TPercent> */
-RET_LABEL1:(void)0;
 }
+if (unlikely(!var36)) {
+var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwsuper", var_class_name39);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1348);
+fatal_exit(1);
 }
-RET_LABEL:;
+{
+nit__parser_prod___ASuperPropdef___n_kwsuper_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_kwsuper= on <self:ASuperPropdef>*/
 }
-/* method parser_prod#APercentMethid#replace_child for (self: APercentMethid, ANode, nullable ANode) */
-void nit__parser_prod___APercentMethid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
-val* var_old_child /* var old_child: ANode */;
-val* var_new_child /* var new_child: nullable ANode */;
-val* var /* : TPercent */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_nit__parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1475);
-show_backtrace(1);
+goto RET_LABEL;
+} else {
+}
+var40 = self->attrs[COLOR_nit__parser_nodes__ASuperPropdef___n_type].val; /* _n_type on <self:ASuperPropdef> */
+if (unlikely(var40 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1351);
+fatal_exit(1);
 }
 {
-{ /* Inline kernel#Object#== (var,var_old_child) on <var:TPercent> */
+{ /* Inline kernel#Object#== (var40,var_old_child) on <var40:AType> */
 var_other = var_old_child;
 {
-{ /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPercent> */
-var5 = var == var_other;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var40,var_other) on <var40:AType> */
+var45 = var40 == var_other;
+var43 = var45;
+goto RET_LABEL44;
+RET_LABEL44:(void)0;
 }
 }
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
+var41 = var43;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
 }
 }
-if (var1){
-/* <var_new_child:nullable ANode> isa TPercent */
-cltype = type_nit__TPercent.color;
-idtype = type_nit__TPercent.id;
+if (var41){
+/* <var_new_child:nullable ANode> isa AType */
+cltype47 = type_nit__AType.color;
+idtype48 = type_nit__AType.id;
 if(var_new_child == NULL) {
-var6 = 0;
+var46 = 0;
 } else {
-if(cltype >= var_new_child->type->table_size) {
-var6 = 0;
+if(cltype47 >= var_new_child->type->table_size) {
+var46 = 0;
 } else {
-var6 = var_new_child->type->type_table[cltype] == idtype;
+var46 = var_new_child->type->type_table[cltype47] == idtype48;
 }
 }
-if (unlikely(!var6)) {
-var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPercent", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1476);
-show_backtrace(1);
+if (unlikely(!var46)) {
+var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name49);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1352);
+fatal_exit(1);
 }
 {
-nit__parser_prod___APercentMethid___n_percent_61d(self, var_new_child); /* Direct call parser_prod#APercentMethid#n_percent= on <self:APercentMethid>*/
+nit__parser_prod___ASuperPropdef___n_type_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_type= on <self:ASuperPropdef>*/
 }
 goto RET_LABEL;
 } else {
 }
-RET_LABEL:;
-}
-/* method parser_prod#APercentMethid#n_percent= for (self: APercentMethid, TPercent) */
-void nit__parser_prod___APercentMethid___n_percent_61d(val* self, val* p0) {
-val* var_node /* var node: TPercent */;
-var_node = p0;
-self->attrs[COLOR_nit__parser_nodes__APercentMethid___n_percent].val = var_node; /* _n_percent on <self:APercentMethid> */
+var50 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperPropdef> */
+if (var50 == NULL) {
+var51 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel#Object#== (var50,var_old_child) on <var50:nullable AAnnotations> */
+var_other = var_old_child;
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPercent> */
-var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPercent> */
-RET_LABEL1:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var50,var_other) on <var50:nullable AAnnotations(AAnnotations)> */
+var56 = var50 == var_other;
+var54 = var56;
+goto RET_LABEL55;
+RET_LABEL55:(void)0;
 }
 }
-RET_LABEL:;
+var52 = var54;
+goto RET_LABEL53;
+RET_LABEL53:(void)0;
+}
+var51 = var52;
+}
+if (var51){
+/* <var_new_child:nullable ANode> isa nullable AAnnotations */
+cltype58 = type_nullable__nit__AAnnotations.color;
+idtype59 = type_nullable__nit__AAnnotations.id;
+if(var_new_child == NULL) {
+var57 = 1;
+} else {
+if(cltype58 >= var_new_child->type->table_size) {
+var57 = 0;
+} else {
+var57 = var_new_child->type->type_table[cltype58] == idtype59;
 }
-/* method parser_prod#APercentMethid#visit_all for (self: APercentMethid, Visitor) */
-void nit__parser_prod___APercentMethid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TPercent */;
-var_v = p0;
-var = self->attrs[COLOR_nit__parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
-if (unlikely(var == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
-PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1490);
-show_backtrace(1);
+}
+if (unlikely(!var57)) {
+var_class_name60 = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name60);
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 1356);
+fatal_exit(1);
 }
 {
-nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
+nit__parser_prod___ASuperPropdef___nit__parser_nodes__Prod__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASuperPropdef#n_annotations= on <self:ASuperPropdef>*/
+}
+goto RET_LABEL;
+} else {
 }
 RET_LABEL:;
 }