+var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction380> */
+var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction380#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction380__action(val* self, val* p0) {
+parser__ReduceAction380__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction381#action for (self: ReduceAction381, Parser) */
+void parser__ReduceAction381__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pdocnode2 /* var pdocnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tattridnode8 /* var tattridnode8: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : AAttrPropdef */;
+val* var16 /* : null */;
+val* var17 /* : null */;
+val* var18 /* : null */;
+val* var19 /* : null */;
+val* var20 /* : null */;
+val* var21 /* : null */;
+val* var22 /* : null */;
+val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */;
+long var23 /* : Int */;
+long var24 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var4;
+var_pdocnode2 = var_nodearraylist1;
+/* <var_pdocnode2:nullable Object> isa nullable ADoc */
+cltype = type_nullable_parser_nodes__ADoc.color;
+idtype = type_nullable_parser_nodes__ADoc.id;
+if(var_pdocnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_pdocnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pdocnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var5) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 16998);
+show_backtrace(1);
+}
+var_pvisibilitynode6 = var_nodearraylist2;
+/* <var_pvisibilitynode6:nullable Object> isa nullable AVisibility */
+cltype7 = type_nullable_parser_nodes__AVisibility.color;
+idtype8 = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode6 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_pvisibilitynode6->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pvisibilitynode6->type->type_table[cltype7] == idtype8;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17000);
+show_backtrace(1);
+}
+var_tkwvarnode7 = var_nodearraylist3;
+/* <var_tkwvarnode7:nullable Object> isa nullable TKwvar */
+cltype10 = type_nullable_parser_nodes__TKwvar.color;
+idtype11 = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode7 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_tkwvarnode7->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwvarnode7->type->type_table[cltype10] == idtype11;
+}
+}
+if (!var9) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17002);
+show_backtrace(1);
+}
+var_tattridnode8 = var_nodearraylist4;
+/* <var_tattridnode8:nullable Object> isa nullable TAttrid */
+cltype13 = type_nullable_parser_nodes__TAttrid.color;
+idtype14 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode8 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tattridnode8->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tattridnode8->type->type_table[cltype13] == idtype14;
+}
+}
+if (!var12) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17004);
+show_backtrace(1);
+}
+var15 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef);
+var16 = NULL;
+var17 = NULL;
+var18 = NULL;
+var19 = NULL;
+var20 = NULL;
+var21 = NULL;
+var22 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AAttrPropdef__init_aattrpropdef]))(var15, var_pdocnode2, var16, var17, var18, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var19, var20, var21, var22) /* init_aattrpropdef on <var15:AAttrPropdef>*/;
+var_ppropdefnode1 = var15;
+var_node_list = var_ppropdefnode1;
+var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction381> */
+var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
+RET_LABEL:;
+}
+/* method parser#ReduceAction381#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction381__action(val* self, val* p0) {
+parser__ReduceAction381__action(self, p0);
+RET_LABEL:;
+}
+/* method parser#ReduceAction382#action for (self: ReduceAction382, Parser) */
+void parser__ReduceAction382__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pdocnode2 /* var pdocnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_tattridnode8 /* var tattridnode8: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AAttrPropdef */;
+val* var20 /* : null */;
+val* var21 /* : null */;
+val* var22 /* : null */;
+val* var23 /* : null */;
+val* var24 /* : null */;
+val* var25 /* : null */;
+val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */;
+long var26 /* : Int */;
+long var27 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist5 = var1;
+var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist4 = var2;
+var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist3 = var3;
+var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist2 = var4;
+var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
+var_nodearraylist1 = var5;
+var_pdocnode2 = var_nodearraylist1;
+/* <var_pdocnode2:nullable Object> isa nullable ADoc */
+cltype = type_nullable_parser_nodes__ADoc.color;
+idtype = type_nullable_parser_nodes__ADoc.id;
+if(var_pdocnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_pdocnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pdocnode2->type->type_table[cltype] == idtype;
+}
+}
+if (!var6) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17033);
+show_backtrace(1);
+}
+var_tkwredefnode5 = var_nodearraylist2;
+/* <var_tkwredefnode5:nullable Object> isa nullable TKwredef */
+cltype8 = type_nullable_parser_nodes__TKwredef.color;
+idtype9 = type_nullable_parser_nodes__TKwredef.id;
+if(var_tkwredefnode5 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tkwredefnode5->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwredefnode5->type->type_table[cltype8] == idtype9;
+}
+}
+if (!var7) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17035);
+show_backtrace(1);
+}
+var_pvisibilitynode6 = var_nodearraylist3;
+/* <var_pvisibilitynode6:nullable Object> isa nullable AVisibility */
+cltype11 = type_nullable_parser_nodes__AVisibility.color;
+idtype12 = type_nullable_parser_nodes__AVisibility.id;
+if(var_pvisibilitynode6 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_pvisibilitynode6->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_pvisibilitynode6->type->type_table[cltype11] == idtype12;
+}
+}
+if (!var10) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17037);
+show_backtrace(1);
+}
+var_tkwvarnode7 = var_nodearraylist4;
+/* <var_tkwvarnode7:nullable Object> isa nullable TKwvar */
+cltype14 = type_nullable_parser_nodes__TKwvar.color;
+idtype15 = type_nullable_parser_nodes__TKwvar.id;
+if(var_tkwvarnode7 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_tkwvarnode7->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_tkwvarnode7->type->type_table[cltype14] == idtype15;
+}
+}
+if (!var13) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17039);
+show_backtrace(1);
+}
+var_tattridnode8 = var_nodearraylist5;
+/* <var_tattridnode8:nullable Object> isa nullable TAttrid */
+cltype17 = type_nullable_parser_nodes__TAttrid.color;
+idtype18 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode8 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_tattridnode8->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_tattridnode8->type->type_table[cltype17] == idtype18;
+}
+}
+if (!var16) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 17041);
+show_backtrace(1);
+}
+var19 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef);
+var20 = NULL;
+var21 = NULL;
+var22 = NULL;
+var23 = NULL;
+var24 = NULL;
+var25 = NULL;
+((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrPropdef__init_aattrpropdef]))(var19, var_pdocnode2, var20, var21, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var22, var23, var24, var25) /* init_aattrpropdef on <var19:AAttrPropdef>*/;
+var_ppropdefnode1 = var19;
+var_node_list = var_ppropdefnode1;
+var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction382> */
+var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
+((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;