+var7 = ((short int(*)(val* self, val* p0))(var_n_kwend->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwend, var_other); /* == on <var_n_kwend:nullable TKwend(TKwend)>*/
+}
+var8 = !var7;
+var5 = var8;
+goto RET_LABEL6;
+RET_LABEL6:(void)0;
+}
+var4 = var5;
+}
+if (var4){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
+var_n_kwend->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
+RET_LABEL9:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod$ABlockExpr$replace_child for (self: ABlockExpr, ANode, nullable ANode) */
+void nitc__parser_prod___ABlockExpr___nitc__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 /* : ANodes[AExpr] */;
+val* var2 /* : ANodes[AExpr] */;
+short int var3 /* : Bool */;
+val* var4 /* : nullable TKwend */;
+short int var5 /* : Bool */;
+short int var6 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var8 /* : Bool */;
+short int var10 /* : Bool */;
+short int var11 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+var_old_child = p0;
+var_new_child = p1;
+{
+{ /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
+var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
+if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+var3 = nitc___nitc__ANodes___replace_child(var, var_old_child, var_new_child);
+}
+if (var3){
+goto RET_LABEL;
+} else {
+}
+var4 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
+if (var4 == NULL) {
+var5 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel$Object$== (var4,var_old_child) on <var4:nullable TKwend> */
+var_other = var_old_child;
+{
+{ /* Inline kernel$Object$is_same_instance (var4,var_other) on <var4:nullable TKwend(TKwend)> */
+var10 = var4 == var_other;
+var8 = var10;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
+}
+}
+var6 = var8;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
+}
+var5 = var6;
+}
+if (var5){
+/* <var_new_child:nullable ANode> isa nullable TKwend */
+cltype = type_nullable__nitc__TKwend.color;
+idtype = type_nullable__nitc__TKwend.id;
+if(var_new_child == NULL) {
+var11 = 1;
+} else {
+if(cltype >= var_new_child->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_new_child->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var11)) {
+var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2586);
+fatal_exit(1);
+}
+{
+nitc__parser_prod___ABlockExpr___n_kwend_61d(self, var_new_child); /* Direct call parser_prod$ABlockExpr$n_kwend= on <self:ABlockExpr>*/
+}
+goto RET_LABEL;
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod$ABlockExpr$n_kwend= for (self: ABlockExpr, nullable TKwend) */
+void nitc__parser_prod___ABlockExpr___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_nitc__parser_nodes__ABlockExpr___n_kwend].val = var_node; /* _n_kwend on <self:ABlockExpr> */
+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_core__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_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
+RET_LABEL5:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod$ABlockExpr$visit_all for (self: ABlockExpr, Visitor) */
+void nitc__parser_prod___ABlockExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
+val* var_v /* var v: Visitor */;
+val* var /* : ANodes[AExpr] */;
+val* var2 /* : ANodes[AExpr] */;
+val* var3 /* : nullable TKwend */;
+var_v = p0;
+{
+{ /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
+var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
+if (unlikely(var2 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+nitc___nitc__ANodes___visit_all(var, var_v); /* Direct call parser_nodes$ANodes$visit_all on <var:ANodes[AExpr]>*/
+}
+var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
+{
+nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:Visitor>*/
+}
+RET_LABEL:;
+}
+/* method parser_prod$AVardeclExpr$init_avardeclexpr for (self: AVardeclExpr, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
+void nitc__parser_prod___AVardeclExpr___init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
+val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
+val* var_n_id /* var n_id: 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 */;
+short int var /* : Bool */;
+short int var2 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var4 /* : Bool */;
+short int var5 /* : Bool */;
+short int var8 /* : Bool */;
+short int var9 /* : Bool */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+short int var17 /* : Bool */;
+short int var18 /* : Bool */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
+short int var23 /* : Bool */;
+short int var24 /* : Bool */;
+short int var26 /* : Bool */;
+short int var27 /* : Bool */;
+short int var29 /* : Bool */;
+short int var30 /* : Bool */;
+{
+{ /* Inline kernel$Object$init (self) on <self:AVardeclExpr> */
+RET_LABEL1:(void)0;
+}
+}
+var_n_kwvar = p0;
+var_n_id = p1;
+var_n_type = p2;
+var_n_assign = p3;
+var_n_expr = p4;
+var_n_annotations = p5;
+self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AVardeclExpr> */
+if (var_n_kwvar == NULL) {
+var = 0; /* is null */
+} else {
+var = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$!= (var_n_kwvar,((val*)NULL)) on <var_n_kwvar:nullable TKwvar> */
+var_other = ((val*)NULL);
+{
+var4 = ((short int(*)(val* self, val* p0))(var_n_kwvar->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwvar, var_other); /* == on <var_n_kwvar:nullable TKwvar(TKwvar)>*/
+}
+var5 = !var4;
+var2 = var5;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+var = var2;
+}
+if (var){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_kwvar,self) on <var_n_kwvar:nullable TKwvar(TKwvar)> */
+var_n_kwvar->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwvar:nullable TKwvar(TKwvar)> */
+RET_LABEL6:(void)0;
+}
+}
+} else {
+}
+if (unlikely(var_n_id == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2616);
+fatal_exit(1);
+}
+self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_id].val = var_n_id; /* _n_id on <self:AVardeclExpr> */
+if (var_n_id == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2617);
+fatal_exit(1);
+} else {
+{ /* Inline parser_nodes$ANode$parent= (var_n_id,self) on <var_n_id:nullable TId> */
+if (unlikely(var_n_id == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 60);
+fatal_exit(1);
+}
+var_n_id->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
+RET_LABEL7:(void)0;
+}
+}
+self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_type].val = var_n_type; /* _n_type on <self:AVardeclExpr> */
+if (var_n_type == NULL) {
+var8 = 0; /* is null */
+} else {
+var8 = 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);
+{
+var11 = ((short int(*)(val* self, val* p0))(var_n_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_type, var_other); /* == on <var_n_type:nullable AType(AType)>*/
+}
+var12 = !var11;
+var9 = var12;
+goto RET_LABEL10;
+RET_LABEL10:(void)0;
+}
+var8 = var9;
+}
+if (var8){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
+var_n_type->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
+RET_LABEL13:(void)0;
+}
+}
+} else {
+}
+self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVardeclExpr> */
+if (var_n_assign == NULL) {
+var14 = 0; /* is null */
+} else {
+var14 = 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);
+{
+var17 = ((short int(*)(val* self, val* p0))(var_n_assign->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_assign, var_other); /* == on <var_n_assign:nullable TAssign(TAssign)>*/
+}
+var18 = !var17;
+var15 = var18;
+goto RET_LABEL16;
+RET_LABEL16:(void)0;
+}
+var14 = var15;
+}
+if (var14){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_assign,self) on <var_n_assign:nullable TAssign(TAssign)> */
+var_n_assign->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign(TAssign)> */
+RET_LABEL19:(void)0;
+}
+}
+} else {
+}
+self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVardeclExpr> */
+if (var_n_expr == NULL) {
+var20 = 0; /* is null */
+} else {
+var20 = 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);
+{
+var23 = ((short int(*)(val* self, val* p0))(var_n_expr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_expr, var_other); /* == on <var_n_expr:nullable AExpr(AExpr)>*/
+}
+var24 = !var23;
+var21 = var24;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
+}
+var20 = var21;
+}
+if (var20){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
+var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
+RET_LABEL25:(void)0;
+}
+}
+} else {
+}
+self->attrs[COLOR_nitc__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AVardeclExpr> */
+if (var_n_annotations == NULL) {
+var26 = 0; /* is null */
+} else {
+var26 = 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);
+{
+var29 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
+}
+var30 = !var29;
+var27 = var30;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
+}
+var26 = var27;
+}
+if (var26){
+{
+{ /* Inline parser_nodes$ANode$parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+var_n_annotations->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
+RET_LABEL31:(void)0;
+}
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method parser_prod$AVardeclExpr$replace_child for (self: AVardeclExpr, ANode, nullable ANode) */
+void nitc__parser_prod___AVardeclExpr___nitc__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 TKwvar */;
+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 /* : TId */;
+short int var9 /* : Bool */;
+short int var11 /* : Bool */;
+short int var13 /* : Bool */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+const char* var_class_name17;
+val* var18 /* : nullable AType */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
+short int var22 /* : Bool */;
+short int var24 /* : Bool */;
+short int var25 /* : Bool */;
+int cltype26;
+int idtype27;
+const char* var_class_name28;
+val* var29 /* : nullable TAssign */;
+short int var30 /* : Bool */;
+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 /* : nullable AExpr */;
+short int var41 /* : Bool */;
+short int var42 /* : Bool */;
+short int var44 /* : Bool */;
+short int var46 /* : Bool */;
+short int var47 /* : Bool */;
+int cltype48;
+int idtype49;
+const char* var_class_name50;
+val* var51 /* : nullable AAnnotations */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var55 /* : Bool */;
+short int var57 /* : Bool */;
+short int var58 /* : Bool */;
+int cltype59;
+int idtype60;
+const char* var_class_name61;
+var_old_child = p0;
+var_new_child = p1;
+var = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
+if (var == NULL) {
+var1 = 0; /* <var_old_child:ANode> cannot be null */
+} else {
+{ /* Inline kernel$Object$== (var,var_old_child) on <var:nullable TKwvar> */
+var_other = var_old_child;
+{
+{ /* Inline kernel$Object$is_same_instance (var,var_other) on <var:nullable TKwvar(TKwvar)> */
+var6 = var == var_other;
+var4 = var6;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
+}
+}
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+var1 = var2;
+}
+if (var1){
+/* <var_new_child:nullable ANode> isa nullable TKwvar */
+cltype = type_nullable__nitc__TKwvar.color;
+idtype = type_nullable__nitc__TKwvar.id;
+if(var_new_child == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_new_child->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_new_child->type->type_table[cltype] == idtype;