-/* method parser_prod#AWhileExpr#replace_child for (self: AWhileExpr, ANode, nullable ANode) */
-void parser_prod__AWhileExpr__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 /* : TKwwhile */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var5 /* : AExpr */;
-short int var6 /* : Bool */;
-val* var7 /* : null */;
-short int var8 /* : Bool */;
-short int var9 /* : Bool */;
-int cltype10;
-int idtype11;
-val* var12 /* : TKwdo */;
-short int var13 /* : Bool */;
-val* var14 /* : null */;
-short int var15 /* : Bool */;
-short int var16 /* : Bool */;
-int cltype17;
-int idtype18;
-val* var19 /* : nullable AExpr */;
-short int var20 /* : Bool */;
-val* var21 /* : null */;
-short int var22 /* : Bool */;
-short int var23 /* : Bool */;
-int cltype24;
-int idtype25;
-val* var26 /* : null */;
-val* var27 /* : nullable ALabel */;
-short int var28 /* : Bool */;
-val* var29 /* : null */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-int cltype32;
-int idtype33;
-val* var34 /* : null */;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwhile");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5258);
-exit(1);
-}
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwwhile>*/;
-if (var1){
-var2 = NULL;
-if (var_new_child == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwwhile */
-cltype = type_parser_nodes__TKwwhile.color;
-idtype = type_parser_nodes__TKwwhile.id;
-if(cltype >= var_new_child->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_new_child->type->type_table[cltype] == idtype;
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5261);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_new_child; /* _n_kwwhile on <self:AWhileExpr> */
-} else {
-fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5264);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-var5 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
-if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5268);
-exit(1);
-}
-var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:AExpr>*/;
-if (var6){
-var7 = NULL;
-if (var_new_child == NULL) {
-var8 = 0; /* is null */
-} else {
-var8 = 1; /* arg is null and recv is not */
-}
-if (var8){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa AExpr */
-cltype10 = type_parser_nodes__AExpr.color;
-idtype11 = type_parser_nodes__AExpr.id;
-if(cltype10 >= var_new_child->type->table_size) {
-var9 = 0;
-} else {
-var9 = var_new_child->type->type_table[cltype10] == idtype11;
-}
-if (!var9) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5271);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_new_child; /* _n_expr on <self:AWhileExpr> */
-} else {
-fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5274);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-var12 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
-if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5278);
-exit(1);
-}
-var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TKwdo>*/;
-if (var13){
-var14 = NULL;
-if (var_new_child == NULL) {
-var15 = 0; /* is null */
-} else {
-var15 = 1; /* arg is null and recv is not */
-}
-if (var15){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwdo */
-cltype17 = type_parser_nodes__TKwdo.color;
-idtype18 = type_parser_nodes__TKwdo.id;
-if(cltype17 >= var_new_child->type->table_size) {
-var16 = 0;
-} else {
-var16 = var_new_child->type->type_table[cltype17] == idtype18;
-}
-if (!var16) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5281);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_new_child; /* _n_kwdo on <self:AWhileExpr> */
-} else {
-fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5284);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-var19 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
-if (var19 == NULL) {
-var20 = 0; /* <var_old_child:ANode> cannot be null */
-} else {
-var20 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var_old_child) /* == on <var19:nullable AExpr>*/;
-}
-if (var20){
-var21 = NULL;
-if (var_new_child == NULL) {
-var22 = 0; /* is null */
-} else {
-var22 = 1; /* arg is null and recv is not */
-}
-if (var22){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa AExpr */
-cltype24 = type_parser_nodes__AExpr.color;
-idtype25 = type_parser_nodes__AExpr.id;
-if(cltype24 >= var_new_child->type->table_size) {
-var23 = 0;
-} else {
-var23 = var_new_child->type->type_table[cltype24] == idtype25;
-}
-if (!var23) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5291);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_new_child; /* _n_block on <self:AWhileExpr> */
-} else {
-var26 = NULL;
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var26; /* _n_block on <self:AWhileExpr> */
-}
-goto RET_LABEL;
-} else {
-}
-var27 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
-if (var27 == NULL) {
-var28 = 0; /* <var_old_child:ANode> cannot be null */
-} else {
-var28 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var_old_child) /* == on <var27:nullable ALabel>*/;
-}
-if (var28){
-var29 = NULL;
-if (var_new_child == NULL) {
-var30 = 0; /* is null */
-} else {
-var30 = 1; /* arg is null and recv is not */
-}
-if (var30){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa ALabel */
-cltype32 = type_parser_nodes__ALabel.color;
-idtype33 = type_parser_nodes__ALabel.id;
-if(cltype32 >= var_new_child->type->table_size) {
-var31 = 0;
-} else {
-var31 = var_new_child->type->type_table[cltype32] == idtype33;
-}
-if (!var31) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5301);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:AWhileExpr> */
-} else {
-var34 = NULL;
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var34; /* _n_label on <self:AWhileExpr> */
-}
-goto RET_LABEL;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#replace_child for (self: Object, ANode, nullable ANode) */
-void VIRTUAL_parser_prod__AWhileExpr__replace_child(val* self, val* p0, val* p1) {
-parser_prod__AWhileExpr__replace_child(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_kwwhile= for (self: AWhileExpr, TKwwhile) */
-void parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
-val* var_node /* var node: TKwwhile */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_node; /* _n_kwwhile on <self:AWhileExpr> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwwhile>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_kwwhile= for (self: Object, TKwwhile) */
-void VIRTUAL_parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
-parser_prod__AWhileExpr__n_kwwhile_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_expr= for (self: AWhileExpr, AExpr) */
-void parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
-val* var_node /* var node: AExpr */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_node; /* _n_expr on <self:AWhileExpr> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AExpr>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_expr= for (self: Object, AExpr) */
-void VIRTUAL_parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
-parser_prod__AWhileExpr__n_expr_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_kwdo= for (self: AWhileExpr, TKwdo) */
-void parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
-val* var_node /* var node: TKwdo */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWhileExpr> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwdo>*/;
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_kwdo= for (self: Object, TKwdo) */
-void VIRTUAL_parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
-parser_prod__AWhileExpr__n_kwdo_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_block= for (self: AWhileExpr, nullable AExpr) */
-void parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
-val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_node; /* _n_block on <self:AWhileExpr> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_block= for (self: Object, nullable AExpr) */
-void VIRTUAL_parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
-parser_prod__AWhileExpr__n_block_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_label= for (self: AWhileExpr, nullable ALabel) */
-void parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
-val* var_node /* var node: nullable ALabel */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWhileExpr> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#n_label= for (self: Object, nullable ALabel) */
-void VIRTUAL_parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
-parser_prod__AWhileExpr__n_label_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#visit_all for (self: AWhileExpr, Visitor) */
-void parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TKwwhile */;
-val* var1 /* : AExpr */;
-val* var2 /* : TKwdo */;
-val* var3 /* : nullable AExpr */;
-val* var4 /* : null */;
-short int var5 /* : Bool */;
-val* var6 /* : nullable AExpr */;
-val* var7 /* : nullable ALabel */;
-val* var8 /* : null */;
-short int var9 /* : Bool */;
-val* var10 /* : nullable ALabel */;
-var_v = p0;
-var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwhile");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5343);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
-var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5344);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
-var2 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5345);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
-var3 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
-var4 = NULL;
-if (var3 == NULL) {
-var5 = 0; /* is null */
-} else {
-var5 = 1; /* arg is null and recv is not */
-}
-if (var5){
-var6 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
-if (var6 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5347);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var6) /* enter_visit on <var_v:Visitor>*/;
-} else {
-}
-var7 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
-var8 = NULL;
-if (var7 == NULL) {
-var9 = 0; /* is null */
-} else {
-var9 = 1; /* arg is null and recv is not */
-}
-if (var9){
-var10 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
-if (var10 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5350);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var10) /* enter_visit on <var_v:Visitor>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AWhileExpr#visit_all for (self: Object, Visitor) */
-void VIRTUAL_parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
-parser_prod__AWhileExpr__visit_all(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#empty_init for (self: ALoopExpr) */
-void parser_prod__ALoopExpr__empty_init(val* self) {
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#empty_init for (self: Object) */
-void VIRTUAL_parser_prod__ALoopExpr__empty_init(val* self) {
-parser_prod__ALoopExpr__empty_init(self);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#init_aloopexpr for (self: ALoopExpr, nullable TKwloop, nullable AExpr, nullable ALabel) */
-void parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
-val* var_n_kwloop /* var n_kwloop: nullable TKwloop */;
-val* var_n_block /* var n_block: nullable AExpr */;
-val* var_n_label /* var n_label: nullable ALabel */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-var_n_kwloop = p0;
-var_n_block = p1;
-var_n_label = p2;
-((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALoopExpr__empty_init]))(self) /* empty_init on <self:ALoopExpr>*/;
-if (var_n_kwloop == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5364);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_n_kwloop; /* _n_kwloop on <self:ALoopExpr> */
-if (var_n_kwloop == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5365);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_kwloop->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwloop, self) /* parent= on <var_n_kwloop:nullable TKwloop>*/;
-}
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_n_block; /* _n_block on <self:ALoopExpr> */
-var = NULL;
-if (var_n_block == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_n_block->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_block, self) /* parent= on <var_n_block:nullable AExpr(AExpr)>*/;
-} else {
-}
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ALoopExpr> */
-var2 = NULL;
-if (var_n_label == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_n_label->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_label, self) /* parent= on <var_n_label:nullable ALabel(ALabel)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#init_aloopexpr for (self: Object, nullable TKwloop, nullable AExpr, nullable ALabel) */
-void VIRTUAL_parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
-parser_prod__ALoopExpr__init_aloopexpr(self, p0, p1, p2);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#replace_child for (self: ALoopExpr, ANode, nullable ANode) */
-void parser_prod__ALoopExpr__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 /* : TKwloop */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var5 /* : nullable AExpr */;
-short int var6 /* : Bool */;
-val* var7 /* : null */;
-short int var8 /* : Bool */;
-short int var9 /* : Bool */;
-int cltype10;
-int idtype11;
-val* var12 /* : null */;
-val* var13 /* : nullable ALabel */;
-short int var14 /* : Bool */;
-val* var15 /* : null */;
-short int var16 /* : Bool */;
-short int var17 /* : Bool */;
-int cltype18;
-int idtype19;
-val* var20 /* : null */;
-var_old_child = p0;
-var_new_child = p1;
-var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwloop");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5378);
-exit(1);
-}
-var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwloop>*/;
-if (var1){
-var2 = NULL;
-if (var_new_child == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa TKwloop */
-cltype = type_parser_nodes__TKwloop.color;
-idtype = type_parser_nodes__TKwloop.id;
-if(cltype >= var_new_child->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_new_child->type->type_table[cltype] == idtype;
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5381);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_new_child; /* _n_kwloop on <self:ALoopExpr> */
-} else {
-fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5384);
-exit(1);
-}
-goto RET_LABEL;
-} else {
-}
-var5 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
-if (var5 == NULL) {
-var6 = 0; /* <var_old_child:ANode> cannot be null */
-} else {
-var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable AExpr>*/;
-}
-if (var6){
-var7 = NULL;
-if (var_new_child == NULL) {
-var8 = 0; /* is null */
-} else {
-var8 = 1; /* arg is null and recv is not */
-}
-if (var8){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa AExpr */
-cltype10 = type_parser_nodes__AExpr.color;
-idtype11 = type_parser_nodes__AExpr.id;
-if(cltype10 >= var_new_child->type->table_size) {
-var9 = 0;
-} else {
-var9 = var_new_child->type->type_table[cltype10] == idtype11;
-}
-if (!var9) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5391);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_new_child; /* _n_block on <self:ALoopExpr> */
-} else {
-var12 = NULL;
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var12; /* _n_block on <self:ALoopExpr> */
-}
-goto RET_LABEL;
-} else {
-}
-var13 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
-if (var13 == NULL) {
-var14 = 0; /* <var_old_child:ANode> cannot be null */
-} else {
-var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable ALabel>*/;
-}
-if (var14){
-var15 = NULL;
-if (var_new_child == NULL) {
-var16 = 0; /* is null */
-} else {
-var16 = 1; /* arg is null and recv is not */
-}
-if (var16){
-((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
-/* <var_new_child:nullable ANode(ANode)> isa ALabel */
-cltype18 = type_parser_nodes__ALabel.color;
-idtype19 = type_parser_nodes__ALabel.id;
-if(cltype18 >= var_new_child->type->table_size) {
-var17 = 0;
-} else {
-var17 = var_new_child->type->type_table[cltype18] == idtype19;
-}
-if (!var17) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5401);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:ALoopExpr> */
-} else {
-var20 = NULL;
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var20; /* _n_label on <self:ALoopExpr> */
-}
-goto RET_LABEL;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#replace_child for (self: Object, ANode, nullable ANode) */
-void VIRTUAL_parser_prod__ALoopExpr__replace_child(val* self, val* p0, val* p1) {
-parser_prod__ALoopExpr__replace_child(self, p0, p1);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_kwloop= for (self: ALoopExpr, TKwloop) */
-void parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
-val* var_node /* var node: TKwloop */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_node; /* _n_kwloop on <self:ALoopExpr> */
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwloop>*/;
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_kwloop= for (self: Object, TKwloop) */
-void VIRTUAL_parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
-parser_prod__ALoopExpr__n_kwloop_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_block= for (self: ALoopExpr, nullable AExpr) */
-void parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
-val* var_node /* var node: nullable AExpr */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_node; /* _n_block on <self:ALoopExpr> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_block= for (self: Object, nullable AExpr) */
-void VIRTUAL_parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
-parser_prod__ALoopExpr__n_block_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_label= for (self: ALoopExpr, nullable ALabel) */
-void parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
-val* var_node /* var node: nullable ALabel */;
-val* var /* : null */;
-short int var1 /* : Bool */;
-var_node = p0;
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ALoopExpr> */
-var = NULL;
-if (var_node == NULL) {
-var1 = 0; /* is null */
-} else {
-var1 = 1; /* arg is null and recv is not */
-}
-if (var1){
-((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#n_label= for (self: Object, nullable ALabel) */
-void VIRTUAL_parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
-parser_prod__ALoopExpr__n_label_61d(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#visit_all for (self: ALoopExpr, Visitor) */
-void parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
-val* var_v /* var v: Visitor */;
-val* var /* : TKwloop */;
-val* var1 /* : nullable AExpr */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-val* var4 /* : nullable AExpr */;
-val* var5 /* : nullable ALabel */;
-val* var6 /* : null */;
-short int var7 /* : Bool */;
-val* var8 /* : nullable ALabel */;
-var_v = p0;
-var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwloop");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5433);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
-var1 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
-var2 = NULL;
-if (var1 == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (var3){
-var4 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5435);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
-} else {
-}
-var5 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
-var6 = NULL;
-if (var5 == NULL) {
-var7 = 0; /* is null */
-} else {
-var7 = 1; /* arg is null and recv is not */
-}
-if (var7){
-var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
-if (var8 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5438);
-exit(1);
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#ALoopExpr#visit_all for (self: Object, Visitor) */
-void VIRTUAL_parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
-parser_prod__ALoopExpr__visit_all(self, p0);
-RET_LABEL:;
-}
-/* method parser_prod#AForExpr#empty_init for (self: AForExpr) */
-void parser_prod__AForExpr__empty_init(val* self) {
-RET_LABEL:;
-}
-/* method parser_prod#AForExpr#empty_init for (self: Object) */
-void VIRTUAL_parser_prod__AForExpr__empty_init(val* self) {
-parser_prod__AForExpr__empty_init(self);
-RET_LABEL:;
-}
-/* method parser_prod#AForExpr#init_aforexpr for (self: AForExpr, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
-void parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
-val* var_n_kwfor /* var n_kwfor: nullable TKwfor */;
-val* var_n_ids /* var n_ids: Collection[Object] */;
-val* var_n_expr /* var n_expr: nullable AExpr */;
-val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
-val* var_n_block /* var n_block: nullable AExpr */;
-val* var_n_label /* var n_label: nullable ALabel */;
-val* var /* : Iterator[nullable Object] */;
-short int var1 /* : Bool */;
-val* var2 /* : nullable Object */;
-val* var_n /* var n: Object */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-val* var4 /* : ANodes[TId] */;
-val* var5 /* : null */;
-short int var6 /* : Bool */;
-val* var7 /* : null */;
-short int var8 /* : Bool */;
-var_n_kwfor = p0;
-var_n_ids = p1;
-var_n_expr = p2;
-var_n_kwdo = p3;
-var_n_block = p4;
-var_n_label = p5;
-((void (*)(val*))(self->class->vft[COLOR_parser_prod__AForExpr__empty_init]))(self) /* empty_init on <self:AForExpr>*/;
-if (var_n_kwfor == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5455);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val = var_n_kwfor; /* _n_kwfor on <self:AForExpr> */
-if (var_n_kwfor == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5456);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_kwfor->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwfor, self) /* parent= on <var_n_kwfor:nullable TKwfor>*/;
-}
-var = ((val* (*)(val*))(var_n_ids->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_ids) /* iterator on <var_n_ids:Collection[Object]>*/;
-for(;;) {
-var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
-if(!var1) break;
-var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
-var_n = var2;
-/* <var_n:Object> isa TId */
-cltype = type_parser_nodes__TId.color;
-idtype = type_parser_nodes__TId.id;
-if(cltype >= var_n->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_n->type->type_table[cltype] == idtype;
-}
-if (!var3) {
-fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5458);
-exit(1);
-}
-var4 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ids");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5459);
-exit(1);
-}
-((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[TId]>*/;
-((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(TId)>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-if (var_n_expr == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5462);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AForExpr> */
-if (var_n_expr == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5463);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr>*/;
-}
-if (var_n_kwdo == NULL) {
-fprintf(stderr, "Runtime error: %s", "Cast failed");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5464);
-exit(1);
-}
-self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AForExpr> */
-if (var_n_kwdo == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5465);
-exit(1);
-} else {
-((void (*)(val*, val*))(var_n_kwdo->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwdo, self) /* parent= on <var_n_kwdo:nullable TKwdo>*/;
-}
-self->attrs[COLOR_parser_nodes__AForExpr___n_block].val = var_n_block; /* _n_block on <self:AForExpr> */
-var5 = NULL;
-if (var_n_block == NULL) {
-var6 = 0; /* is null */
-} else {
-var6 = 1; /* arg is null and recv is not */
-}
-if (var6){
-((void (*)(val*, val*))(var_n_block->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_block, self) /* parent= on <var_n_block:nullable AExpr(AExpr)>*/;
-} else {
-}
-self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AForExpr> */
-var7 = NULL;
-if (var_n_label == NULL) {
-var8 = 0; /* is null */
-} else {
-var8 = 1; /* arg is null and recv is not */
-}
-if (var8){
-((void (*)(val*, val*))(var_n_label->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_label, self) /* parent= on <var_n_label:nullable ALabel(ALabel)>*/;
-} else {
-}
-RET_LABEL:;
-}
-/* method parser_prod#AForExpr#init_aforexpr for (self: Object, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
-void VIRTUAL_parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
-parser_prod__AForExpr__init_aforexpr(self, p0, p1, p2, p3, p4, p5);
-RET_LABEL:;
-}
-/* method parser_prod#AForExpr#replace_child for (self: AForExpr, ANode, nullable ANode) */
-void parser_prod__AForExpr__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 */;