X-Git-Url: http://nitlanguage.org diff --git a/c_src/parser.sep.3.c b/c_src/parser.sep.3.c index a6adffb..f693539 100644 --- a/c_src/parser.sep.3.c +++ b/c_src/parser.sep.3.c @@ -1,4222 +1,5478 @@ #include "parser.sep.0.h" -/* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */ -void parser__ReduceAction3__action(val* self, val* p0) { +/* method parser#ReduceAction69#action for (self: ReduceAction69, Parser) */ +void parser__ReduceAction69__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : Array[Object] */; -val* var11 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var12 /* : Int */; -long var13 /* : Int */; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var27 /* : AAttrPropdef */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var32 /* : Int */; +long var33 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var6 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var8 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var8 = 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", 1883); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3241); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype8 = type_array__Arraykernel__Object.color; -idtype9 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +var_pablenode4 = var_nodearraylist2; +/* isa nullable AAble */ +cltype10 = type_nullable_parser_nodes__AAble.color; +idtype11 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var9 = 1; } else { -if(cltype8 >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype10 >= var_pablenode4->type->table_size) { +var9 = 0; } else { -var7 = var_listnode3->type->type_table[cltype8] == idtype9; +var9 = var_pablenode4->type->type_table[cltype10] == idtype11; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1885); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3243); show_backtrace(1); } -var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var10; -var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var11; -var_node_list = var_pmodulenode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; -RET_LABEL:; +var_tkwredefnode5 = var_nodearraylist3; +/* isa nullable TKwredef */ +cltype13 = type_nullable_parser_nodes__TKwredef.color; +idtype14 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var12 = 1; +} else { +if(cltype13 >= var_tkwredefnode5->type->table_size) { +var12 = 0; +} else { +var12 = var_tkwredefnode5->type->type_table[cltype13] == idtype14; } -/* method parser#ReduceAction3#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction3__action(val* self, val* p0) { -parser__ReduceAction3__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction4#action for (self: ReduceAction4, Parser) */ -void parser__ReduceAction4__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_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var3 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var5 /* : Bool */; -int cltype; -int idtype; -val* var6 /* : Array[Object] */; -val* var7 /* : AModule */; -val* var8 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var9 /* : Int */; -long var10 /* : 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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode5 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode6 = var4; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var5 = 0; +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3245); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist4; +/* isa nullable AVisibility */ +cltype16 = type_nullable_parser_nodes__AVisibility.color; +idtype17 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var15 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var5 = 0; +if(cltype16 >= var_pvisibilitynode6->type->table_size) { +var15 = 0; } else { -var5 = var_listnode4->type->type_table[cltype] == idtype; +var15 = var_pvisibilitynode6->type->type_table[cltype16] == idtype17; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1907); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3247); show_backtrace(1); } -var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var6; -var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var8 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var7; -var_node_list = var_pmodulenode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; -RET_LABEL:; +var_tkwvarnode7 = var_nodearraylist5; +/* isa nullable TKwvar */ +cltype19 = type_nullable_parser_nodes__TKwvar.color; +idtype20 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwvarnode7->type->table_size) { +var18 = 0; +} else { +var18 = var_tkwvarnode7->type->type_table[cltype19] == idtype20; } -/* method parser#ReduceAction4#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction4__action(val* self, val* p0) { -parser__ReduceAction4__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction5#action for (self: ReduceAction5, Parser) */ -void parser__ReduceAction5__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : Array[Object] */; -val* var11 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var12 /* : Int */; -long var13 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var6 = 1; +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3249); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype22 = type_nullable_parser_nodes__TAttrid.color; +idtype23 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var21 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype22 >= var_tattridnode8->type->table_size) { +var21 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var21 = var_tattridnode8->type->type_table[cltype22] == idtype23; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1930); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3251); show_backtrace(1); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype8 = type_array__Arraykernel__Object.color; -idtype9 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var7 = 0; +var_ptypenode10 = var_nodearraylist7; +/* isa nullable AType */ +cltype25 = type_nullable_parser_nodes__AType.color; +idtype26 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var24 = 1; } else { -if(cltype8 >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype25 >= var_ptypenode10->type->table_size) { +var24 = 0; } else { -var7 = var_listnode4->type->type_table[cltype8] == idtype9; +var24 = var_ptypenode10->type->type_table[cltype25] == idtype26; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1932); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3253); show_backtrace(1); } -var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var10; -var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var11; -var_node_list = var_pmodulenode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; +var27 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var28 = NULL; +var29 = NULL; +var30 = NULL; +var31 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var27, var_pdocnode2, var28, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var29, var_ptypenode10, var30, var31); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var32 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var33 = parser_work__Parser__go_to(var_p, var32); +} +{ +parser_work__Parser__push(var_p, var33, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction5#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction5__action(val* self, val* p0) { -parser__ReduceAction5__action(self, p0); +/* method parser#ReduceAction69#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction69__action(val* self, val* p0) { +parser__ReduceAction69__action(self, p0); /* Direct call parser#ReduceAction69#action on */ RET_LABEL:; } -/* method parser#ReduceAction6#action for (self: ReduceAction6, Parser) */ -void parser__ReduceAction6__action(val* self, val* p0) { +/* method parser#ReduceAction70#action for (self: ReduceAction70, Parser) */ +void parser__ReduceAction70__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : AModule */; -val* var13 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var14 /* : Int */; -long var15 /* : Int */; +val* var_pablenode3 /* var pablenode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AAttrPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var35 /* : Int */; +long var36 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode6 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var9 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3285); +show_backtrace(1); +} +var_pablenode3 = var_nodearraylist2; +/* isa nullable AAble */ +cltype11 = type_nullable_parser_nodes__AAble.color; +idtype12 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode3 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_pablenode3->type->table_size) { +var10 = 0; +} else { +var10 = var_pablenode3->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3287); +show_backtrace(1); +} +var_pablenode4 = var_nodearraylist3; +/* isa nullable AAble */ +cltype14 = type_nullable_parser_nodes__AAble.color; +idtype15 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_pablenode4->type->table_size) { +var13 = 0; +} else { +var13 = var_pablenode4->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3289); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist4; +/* isa nullable TKwredef */ +cltype17 = type_nullable_parser_nodes__TKwredef.color; +idtype18 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwredefnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwredefnode5->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3291); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist5; +/* isa nullable AVisibility */ +cltype20 = type_nullable_parser_nodes__AVisibility.color; +idtype21 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_pvisibilitynode6->type->table_size) { +var19 = 0; +} else { +var19 = var_pvisibilitynode6->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3293); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist6; +/* isa nullable TKwvar */ +cltype23 = type_nullable_parser_nodes__TKwvar.color; +idtype24 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_tkwvarnode7->type->table_size) { +var22 = 0; +} else { +var22 = var_tkwvarnode7->type->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3295); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist7; +/* isa nullable TAttrid */ +cltype26 = type_nullable_parser_nodes__TAttrid.color; +idtype27 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_tattridnode8->type->table_size) { +var25 = 0; +} else { +var25 = var_tattridnode8->type->type_table[cltype26] == idtype27; +} +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3297); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist8; +/* isa nullable AType */ +cltype29 = type_nullable_parser_nodes__AType.color; +idtype30 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var28 = 1; +} else { +if(cltype29 >= var_ptypenode10->type->table_size) { +var28 = 0; +} else { +var28 = var_ptypenode10->type->type_table[cltype29] == idtype30; +} +} +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3299); +show_backtrace(1); +} +var31 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var31, var_pdocnode2, var_pablenode3, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var32, var_ptypenode10, var33, var34); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var31; +var_node_list = var_ppropdefnode1; +var35 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var36 = parser_work__Parser__go_to(var_p, var35); +} +{ +parser_work__Parser__push(var_p, var36, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction70#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction70__action(val* self, val* p0) { +parser__ReduceAction70__action(self, p0); /* Direct call parser#ReduceAction70#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction71#action for (self: ReduceAction71, Parser) */ +void parser__ReduceAction71__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_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : Bool */; +int cltype; +int idtype; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AAttrPropdef */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var34 /* : Int */; +long var35 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var10 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; +} else { +var10 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3332); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype12 = type_nullable_parser_nodes__TKwredef.color; +idtype13 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_tkwredefnode5->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode5->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3334); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype15 = type_nullable_parser_nodes__AVisibility.color; +idtype16 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var14 = 1; +} else { +if(cltype15 >= var_pvisibilitynode6->type->table_size) { +var14 = 0; +} else { +var14 = var_pvisibilitynode6->type->type_table[cltype15] == idtype16; +} +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3336); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype18 = type_nullable_parser_nodes__TKwvar.color; +idtype19 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwvarnode7->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwvarnode7->type->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3338); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype21 = type_nullable_parser_nodes__TAttrid.color; +idtype22 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_tattridnode8->type->table_size) { +var20 = 0; +} else { +var20 = var_tattridnode8->type->type_table[cltype21] == idtype22; +} +} +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3340); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist6; +/* isa nullable AType */ +cltype24 = type_nullable_parser_nodes__AType.color; +idtype25 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_ptypenode10->type->table_size) { +var23 = 0; +} else { +var23 = var_ptypenode10->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3342); +show_backtrace(1); +} +var_pexprnode12 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pexprnode12->type->table_size) { +var26 = 0; +} else { +var26 = var_pexprnode12->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3344); +show_backtrace(1); +} +var29 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var30 = NULL; +var31 = NULL; +var32 = NULL; +var33 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var29, var_pdocnode2, var30, var31, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var32, var_ptypenode10, var33, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var29; +var_node_list = var_ppropdefnode1; +var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var35 = parser_work__Parser__go_to(var_p, var34); +} +{ +parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction71#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction71__action(val* self, val* p0) { +parser__ReduceAction71__action(self, p0); /* Direct call parser#ReduceAction71#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction72#action for (self: ReduceAction72, Parser) */ +void parser__ReduceAction72__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_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : Bool */; +int cltype; +int idtype; +val* var_pablenode3 /* var pablenode3: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AAttrPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var36 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var37 /* : Int */; +long var38 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var10; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var11 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; +} else { +var11 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3378); +show_backtrace(1); +} +var_pablenode3 = var_nodearraylist2; +/* isa nullable AAble */ +cltype13 = type_nullable_parser_nodes__AAble.color; +idtype14 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode3 == NULL) { +var12 = 1; +} else { +if(cltype13 >= var_pablenode3->type->table_size) { +var12 = 0; +} else { +var12 = var_pablenode3->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3380); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist3; +/* isa nullable TKwredef */ +cltype16 = type_nullable_parser_nodes__TKwredef.color; +idtype17 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= var_tkwredefnode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwredefnode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3382); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist4; +/* isa nullable AVisibility */ +cltype19 = type_nullable_parser_nodes__AVisibility.color; +idtype20 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_pvisibilitynode6->type->table_size) { +var18 = 0; +} else { +var18 = var_pvisibilitynode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3384); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist5; +/* isa nullable TKwvar */ +cltype22 = type_nullable_parser_nodes__TKwvar.color; +idtype23 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_tkwvarnode7->type->table_size) { +var21 = 0; +} else { +var21 = var_tkwvarnode7->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3386); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype25 = type_nullable_parser_nodes__TAttrid.color; +idtype26 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_tattridnode8->type->table_size) { +var24 = 0; +} else { +var24 = var_tattridnode8->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3388); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist7; +/* isa nullable AType */ +cltype28 = type_nullable_parser_nodes__AType.color; +idtype29 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_ptypenode10->type->table_size) { +var27 = 0; +} else { +var27 = var_ptypenode10->type->type_table[cltype28] == idtype29; +} +} +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3390); +show_backtrace(1); +} +var_pexprnode12 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pexprnode12->type->table_size) { +var30 = 0; +} else { +var30 = var_pexprnode12->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3392); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var34 = NULL; +var35 = NULL; +var36 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var33, var_pdocnode2, var_pablenode3, var34, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var35, var_ptypenode10, var36, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var37 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var38 = parser_work__Parser__go_to(var_p, var37); +} +{ +parser_work__Parser__push(var_p, var38, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction72#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction72__action(val* self, val* p0) { +parser__ReduceAction72__action(self, p0); /* Direct call parser#ReduceAction72#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction73#action for (self: ReduceAction73, Parser) */ +void parser__ReduceAction73__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_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : Bool */; +int cltype; +int idtype; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AAttrPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var36 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var37 /* : Int */; +long var38 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var10; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var11 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; +} else { +var11 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3426); +show_backtrace(1); +} +var_pablenode4 = var_nodearraylist2; +/* isa nullable AAble */ +cltype13 = type_nullable_parser_nodes__AAble.color; +idtype14 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var12 = 1; +} else { +if(cltype13 >= var_pablenode4->type->table_size) { +var12 = 0; +} else { +var12 = var_pablenode4->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3428); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist3; +/* isa nullable TKwredef */ +cltype16 = type_nullable_parser_nodes__TKwredef.color; +idtype17 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= var_tkwredefnode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwredefnode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3430); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist4; +/* isa nullable AVisibility */ +cltype19 = type_nullable_parser_nodes__AVisibility.color; +idtype20 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_pvisibilitynode6->type->table_size) { +var18 = 0; +} else { +var18 = var_pvisibilitynode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3432); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist5; +/* isa nullable TKwvar */ +cltype22 = type_nullable_parser_nodes__TKwvar.color; +idtype23 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_tkwvarnode7->type->table_size) { +var21 = 0; +} else { +var21 = var_tkwvarnode7->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3434); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype25 = type_nullable_parser_nodes__TAttrid.color; +idtype26 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_tattridnode8->type->table_size) { +var24 = 0; +} else { +var24 = var_tattridnode8->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3436); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist7; +/* isa nullable AType */ +cltype28 = type_nullable_parser_nodes__AType.color; +idtype29 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_ptypenode10->type->table_size) { +var27 = 0; +} else { +var27 = var_ptypenode10->type->type_table[cltype28] == idtype29; +} +} +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3438); +show_backtrace(1); +} +var_pexprnode12 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pexprnode12->type->table_size) { +var30 = 0; +} else { +var30 = var_pexprnode12->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3440); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var34 = NULL; +var35 = NULL; +var36 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var33, var_pdocnode2, var34, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var35, var_ptypenode10, var36, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var37 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var38 = parser_work__Parser__go_to(var_p, var37); +} +{ +parser_work__Parser__push(var_p, var38, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction73#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction73__action(val* self, val* p0) { +parser__ReduceAction73__action(self, p0); /* Direct call parser#ReduceAction73#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction74#action for (self: ReduceAction74, Parser) */ +void parser__ReduceAction74__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_nodearraylist11 /* var nodearraylist11: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var12 /* : Bool */; +int cltype; +int idtype; +val* var_pablenode3 /* var pablenode3: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_tattridnode8 /* var tattridnode8: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +val* var37 /* : AAttrPropdef */; +val* var38 /* : null */; +val* var39 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var40 /* : Int */; +long var41 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist11 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var10; +{ +var11 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var11; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var12 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var12 = 0; +} else { +var12 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3475); +show_backtrace(1); +} +var_pablenode3 = var_nodearraylist2; +/* isa nullable AAble */ +cltype14 = type_nullable_parser_nodes__AAble.color; +idtype15 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode3 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_pablenode3->type->table_size) { +var13 = 0; +} else { +var13 = var_pablenode3->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3477); +show_backtrace(1); +} +var_pablenode4 = var_nodearraylist3; +/* isa nullable AAble */ +cltype17 = type_nullable_parser_nodes__AAble.color; +idtype18 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_pablenode4->type->table_size) { +var16 = 0; +} else { +var16 = var_pablenode4->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3479); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist4; +/* isa nullable TKwredef */ +cltype20 = type_nullable_parser_nodes__TKwredef.color; +idtype21 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_tkwredefnode5->type->table_size) { +var19 = 0; +} else { +var19 = var_tkwredefnode5->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3481); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist5; +/* isa nullable AVisibility */ +cltype23 = type_nullable_parser_nodes__AVisibility.color; +idtype24 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_pvisibilitynode6->type->table_size) { +var22 = 0; +} else { +var22 = var_pvisibilitynode6->type->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3483); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist6; +/* isa nullable TKwvar */ +cltype26 = type_nullable_parser_nodes__TKwvar.color; +idtype27 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_tkwvarnode7->type->table_size) { +var25 = 0; +} else { +var25 = var_tkwvarnode7->type->type_table[cltype26] == idtype27; +} +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3485); +show_backtrace(1); +} +var_tattridnode8 = var_nodearraylist7; +/* isa nullable TAttrid */ +cltype29 = type_nullable_parser_nodes__TAttrid.color; +idtype30 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode8 == NULL) { +var28 = 1; +} else { +if(cltype29 >= var_tattridnode8->type->table_size) { +var28 = 0; +} else { +var28 = var_tattridnode8->type->type_table[cltype29] == idtype30; +} +} +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3487); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist8; +/* isa nullable AType */ +cltype32 = type_nullable_parser_nodes__AType.color; +idtype33 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var31 = 1; +} else { +if(cltype32 >= var_ptypenode10->type->table_size) { +var31 = 0; +} else { +var31 = var_ptypenode10->type->type_table[cltype32] == idtype33; +} +} +if (unlikely(!var31)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3489); +show_backtrace(1); +} +var_pexprnode12 = var_nodearraylist11; +/* isa nullable AExpr */ +cltype35 = type_nullable_parser_nodes__AExpr.color; +idtype36 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var34 = 1; +} else { +if(cltype35 >= var_pexprnode12->type->table_size) { +var34 = 0; +} else { +var34 = var_pexprnode12->type->type_table[cltype35] == idtype36; +} +} +if (unlikely(!var34)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3491); +show_backtrace(1); +} +var37 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var38 = NULL; +var39 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var37, var_pdocnode2, var_pablenode3, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var38, var_ptypenode10, var39, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var37; +var_node_list = var_ppropdefnode1; +var40 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var41 = parser_work__Parser__go_to(var_p, var40); +} +{ +parser_work__Parser__push(var_p, var41, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction74#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction74__action(val* self, val* p0) { +parser__ReduceAction74__action(self, p0); /* Direct call parser#ReduceAction74#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction75#action for (self: ReduceAction75, Parser) */ +void parser__ReduceAction75__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_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var8 /* : Bool */; +int cltype; +int idtype; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tidnode9 /* var tidnode9: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_pannotationsnode11 /* var pannotationsnode11: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var27 /* : AAttrPropdef */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var32 /* : Int */; +long var33 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var8 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var8 = 0; +} else { +var8 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3522); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype10 = type_nullable_parser_nodes__TKwredef.color; +idtype11 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var9 = 1; +} else { +if(cltype10 >= var_tkwredefnode5->type->table_size) { +var9 = 0; +} else { +var9 = var_tkwredefnode5->type->type_table[cltype10] == idtype11; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3524); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype13 = type_nullable_parser_nodes__AVisibility.color; +idtype14 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var12 = 1; +} else { +if(cltype13 >= var_pvisibilitynode6->type->table_size) { +var12 = 0; +} else { +var12 = var_pvisibilitynode6->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3526); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype16 = type_nullable_parser_nodes__TKwvar.color; +idtype17 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var15 = 1; +} else { +if(cltype16 >= var_tkwvarnode7->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwvarnode7->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3528); +show_backtrace(1); +} +var_tidnode9 = var_nodearraylist5; +/* isa nullable TId */ +cltype19 = type_nullable_parser_nodes__TId.color; +idtype20 = type_nullable_parser_nodes__TId.id; +if(var_tidnode9 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tidnode9->type->table_size) { +var18 = 0; +} else { +var18 = var_tidnode9->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3530); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist6; +/* isa nullable AType */ +cltype22 = type_nullable_parser_nodes__AType.color; +idtype23 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_ptypenode10->type->table_size) { +var21 = 0; +} else { +var21 = var_ptypenode10->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3532); +show_backtrace(1); +} +var_pannotationsnode11 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype25 = type_nullable_parser_nodes__AAnnotations.color; +idtype26 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode11 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_pannotationsnode11->type->table_size) { +var24 = 0; +} else { +var24 = var_pannotationsnode11->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3534); +show_backtrace(1); +} +var27 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var28 = NULL; +var29 = NULL; +var30 = NULL; +var31 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var27, var_pdocnode2, var28, var29, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var30, var_tidnode9, var_ptypenode10, var_pannotationsnode11, var31); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var32 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var33 = parser_work__Parser__go_to(var_p, var32); +} +{ +parser_work__Parser__push(var_p, var33, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction75#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction75__action(val* self, val* p0) { +parser__ReduceAction75__action(self, p0); /* Direct call parser#ReduceAction75#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction76#action for (self: ReduceAction76, Parser) */ +void parser__ReduceAction76__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_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var9 /* : Bool */; +int cltype; +int idtype; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_tidnode9 /* var tidnode9: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pannotationsnode11 /* var pannotationsnode11: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AAttrPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var35 /* : Int */; +long var36 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var9 = 1; +} else { +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3566); +show_backtrace(1); +} +var_pablenode4 = var_nodearraylist7; +/* isa nullable AAble */ +cltype11 = type_nullable_parser_nodes__AAble.color; +idtype12 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_pablenode4->type->table_size) { +var10 = 0; +} else { +var10 = var_pablenode4->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3568); +show_backtrace(1); +} +var_tkwredefnode5 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype14 = type_nullable_parser_nodes__TKwredef.color; +idtype15 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_tkwredefnode5->type->table_size) { +var13 = 0; +} else { +var13 = var_tkwredefnode5->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3570); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype17 = type_nullable_parser_nodes__AVisibility.color; +idtype18 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_pvisibilitynode6->type->table_size) { +var16 = 0; } else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; +var16 = var_pvisibilitynode6->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3572); +show_backtrace(1); +} +var_tkwvarnode7 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype20 = type_nullable_parser_nodes__TKwvar.color; +idtype21 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_tkwvarnode7->type->table_size) { +var19 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var19 = var_tkwvarnode7->type->type_table[cltype20] == idtype21; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1955); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3574); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var7; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var8 = 0; +var_tidnode9 = var_nodearraylist5; +/* isa nullable TId */ +cltype23 = type_nullable_parser_nodes__TId.color; +idtype24 = type_nullable_parser_nodes__TId.id; +if(var_tidnode9 == NULL) { +var22 = 1; } else { -if(cltype9 >= var_listnode5->type->table_size) { -var8 = 0; +if(cltype23 >= var_tidnode9->type->table_size) { +var22 = 0; } else { -var8 = var_listnode5->type->type_table[cltype9] == idtype10; +var22 = var_tidnode9->type->type_table[cltype23] == idtype24; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1958); +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3576); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var11; -var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var13 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var12; -var_node_list = var_pmodulenode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +var_ptypenode10 = var_nodearraylist6; +/* isa nullable AType */ +cltype26 = type_nullable_parser_nodes__AType.color; +idtype27 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_ptypenode10->type->table_size) { +var25 = 0; +} else { +var25 = var_ptypenode10->type->type_table[cltype26] == idtype27; +} +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3578); +show_backtrace(1); +} +var_pannotationsnode11 = var_nodearraylist8; +/* isa nullable AAnnotations */ +cltype29 = type_nullable_parser_nodes__AAnnotations.color; +idtype30 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode11 == NULL) { +var28 = 1; +} else { +if(cltype29 >= var_pannotationsnode11->type->table_size) { +var28 = 0; +} else { +var28 = var_pannotationsnode11->type->type_table[cltype29] == idtype30; +} +} +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3580); +show_backtrace(1); +} +var31 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var31, var_pdocnode2, var32, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var33, var_tidnode9, var_ptypenode10, var_pannotationsnode11, var34); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var31; +var_node_list = var_ppropdefnode1; +var35 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var36 = parser_work__Parser__go_to(var_p, var35); +} +{ +parser_work__Parser__push(var_p, var36, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction6#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction6__action(val* self, val* p0) { -parser__ReduceAction6__action(self, p0); +/* method parser#ReduceAction76#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction76__action(val* self, val* p0) { +parser__ReduceAction76__action(self, p0); /* Direct call parser#ReduceAction76#action on */ RET_LABEL:; } -/* method parser#ReduceAction7#action for (self: ReduceAction7, Parser) */ -void parser__ReduceAction7__action(val* self, val* p0) { +/* method parser#ReduceAction77#action for (self: ReduceAction77, Parser) */ +void parser__ReduceAction77__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tidnode9 /* var tidnode9: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pannotationsnode11 /* var pannotationsnode11: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AAttrPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var36 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var37 /* : Int */; +long var38 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var10; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var11 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var11 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1982); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3614); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; +var_tkwredefnode5 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype13 = type_nullable_parser_nodes__TKwredef.color; +idtype14 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var12 = 1; } else { -if(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype13 >= var_tkwredefnode5->type->table_size) { +var12 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var12 = var_tkwredefnode5->type->type_table[cltype13] == idtype14; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1984); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3616); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var11; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype13 = type_array__Arraykernel__Object.color; -idtype14 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var12 = 0; +var_pvisibilitynode6 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype16 = type_nullable_parser_nodes__AVisibility.color; +idtype17 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var15 = 1; } else { -if(cltype13 >= var_listnode5->type->table_size) { -var12 = 0; +if(cltype16 >= var_pvisibilitynode6->type->table_size) { +var15 = 0; } else { -var12 = var_listnode5->type->type_table[cltype13] == idtype14; +var15 = var_pvisibilitynode6->type->type_table[cltype16] == idtype17; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1987); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3618); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var15; -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; -RET_LABEL:; +var_tkwvarnode7 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype19 = type_nullable_parser_nodes__TKwvar.color; +idtype20 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwvarnode7->type->table_size) { +var18 = 0; +} else { +var18 = var_tkwvarnode7->type->type_table[cltype19] == idtype20; } -/* method parser#ReduceAction7#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction7__action(val* self, val* p0) { -parser__ReduceAction7__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction8#action for (self: ReduceAction8, Parser) */ -void parser__ReduceAction8__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_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var5 /* : Bool */; -int cltype; -int idtype; -val* var6 /* : Array[Object] */; -val* var7 /* : AModule */; -val* var8 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var9 /* : Int */; -long var10 /* : 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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode6 = var4; -var_listnode5 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var5 = 0; +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3620); +show_backtrace(1); +} +var_tidnode9 = var_nodearraylist5; +/* isa nullable TId */ +cltype22 = type_nullable_parser_nodes__TId.color; +idtype23 = type_nullable_parser_nodes__TId.id; +if(var_tidnode9 == NULL) { +var21 = 1; } else { -if(cltype >= var_listnode5->type->table_size) { -var5 = 0; +if(cltype22 >= var_tidnode9->type->table_size) { +var21 = 0; } else { -var5 = var_listnode5->type->type_table[cltype] == idtype; +var21 = var_tidnode9->type->type_table[cltype22] == idtype23; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2009); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3622); show_backtrace(1); } -var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var6; -var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var8 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var7; -var_node_list = var_pmodulenode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +var_ptypenode10 = var_nodearraylist6; +/* isa nullable AType */ +cltype25 = type_nullable_parser_nodes__AType.color; +idtype26 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_ptypenode10->type->table_size) { +var24 = 0; +} else { +var24 = var_ptypenode10->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3624); +show_backtrace(1); +} +var_pannotationsnode11 = var_nodearraylist10; +/* isa nullable AAnnotations */ +cltype28 = type_nullable_parser_nodes__AAnnotations.color; +idtype29 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode11 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_pannotationsnode11->type->table_size) { +var27 = 0; +} else { +var27 = var_pannotationsnode11->type->type_table[cltype28] == idtype29; +} +} +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3626); +show_backtrace(1); +} +var_pexprnode12 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pexprnode12->type->table_size) { +var30 = 0; +} else { +var30 = var_pexprnode12->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3628); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var34 = NULL; +var35 = NULL; +var36 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var33, var_pdocnode2, var34, var35, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var36, var_tidnode9, var_ptypenode10, var_pannotationsnode11, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var37 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var38 = parser_work__Parser__go_to(var_p, var37); +} +{ +parser_work__Parser__push(var_p, var38, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction8#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction8__action(val* self, val* p0) { -parser__ReduceAction8__action(self, p0); +/* method parser#ReduceAction77#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction77__action(val* self, val* p0) { +parser__ReduceAction77__action(self, p0); /* Direct call parser#ReduceAction77#action on */ RET_LABEL:; } -/* method parser#ReduceAction9#action for (self: ReduceAction9, Parser) */ -void parser__ReduceAction9__action(val* self, val* p0) { +/* method parser#ReduceAction78#action for (self: ReduceAction78, Parser) */ +void parser__ReduceAction78__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var12 /* : Bool */; int cltype; int idtype; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : Array[Object] */; -val* var11 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var12 /* : Int */; -long var13 /* : Int */; +val* var_pablenode4 /* var pablenode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_tidnode9 /* var tidnode9: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_ptypenode10 /* var ptypenode10: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var_pannotationsnode11 /* var pannotationsnode11: nullable Object */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +val* var_pexprnode12 /* var pexprnode12: nullable Object */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +val* var37 /* : AAttrPropdef */; +val* var38 /* : null */; +val* var39 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var40 /* : Int */; +long var41 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var6 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist11 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var10; +{ +var11 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var11; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var12 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var12 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var12 = 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", 2032); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3663); show_backtrace(1); } -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype8 = type_array__Arraykernel__Object.color; -idtype9 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var7 = 0; +var_pablenode4 = var_nodearraylist7; +/* isa nullable AAble */ +cltype14 = type_nullable_parser_nodes__AAble.color; +idtype15 = type_nullable_parser_nodes__AAble.id; +if(var_pablenode4 == NULL) { +var13 = 1; } else { -if(cltype8 >= var_listnode5->type->table_size) { -var7 = 0; +if(cltype14 >= var_pablenode4->type->table_size) { +var13 = 0; } else { -var7 = var_listnode5->type->type_table[cltype8] == idtype9; +var13 = var_pablenode4->type->type_table[cltype14] == idtype15; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2034); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3665); show_backtrace(1); } -var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var10; -var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var11; -var_node_list = var_pmodulenode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; -RET_LABEL:; +var_tkwredefnode5 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype17 = type_nullable_parser_nodes__TKwredef.color; +idtype18 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwredefnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwredefnode5->type->type_table[cltype17] == idtype18; } -/* method parser#ReduceAction9#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction9__action(val* self, val* p0) { -parser__ReduceAction9__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction10#action for (self: ReduceAction10, Parser) */ -void parser__ReduceAction10__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : AModule */; -val* var13 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var14 /* : Int */; -long var15 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3667); +show_backtrace(1); +} +var_pvisibilitynode6 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype20 = type_nullable_parser_nodes__AVisibility.color; +idtype21 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode6 == NULL) { +var19 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype20 >= var_pvisibilitynode6->type->table_size) { +var19 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var19 = var_pvisibilitynode6->type->type_table[cltype20] == idtype21; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2057); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3669); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var7; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var8 = 0; +var_tkwvarnode7 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype23 = type_nullable_parser_nodes__TKwvar.color; +idtype24 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode7 == NULL) { +var22 = 1; } else { -if(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype23 >= var_tkwvarnode7->type->table_size) { +var22 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var22 = var_tkwvarnode7->type->type_table[cltype23] == idtype24; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2060); +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3671); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var11; -var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var13 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var12; -var_node_list = var_pmodulenode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; -RET_LABEL:; +var_tidnode9 = var_nodearraylist5; +/* isa nullable TId */ +cltype26 = type_nullable_parser_nodes__TId.color; +idtype27 = type_nullable_parser_nodes__TId.id; +if(var_tidnode9 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_tidnode9->type->table_size) { +var25 = 0; +} else { +var25 = var_tidnode9->type->type_table[cltype26] == idtype27; } -/* method parser#ReduceAction10#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction10__action(val* self, val* p0) { -parser__ReduceAction10__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction11#action for (self: ReduceAction11, Parser) */ -void parser__ReduceAction11__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var17 /* : Int */; -long var18 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3673); +show_backtrace(1); +} +var_ptypenode10 = var_nodearraylist6; +/* isa nullable AType */ +cltype29 = type_nullable_parser_nodes__AType.color; +idtype30 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode10 == NULL) { +var28 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype29 >= var_ptypenode10->type->table_size) { +var28 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var28 = var_ptypenode10->type->type_table[cltype29] == idtype30; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2084); +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3675); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; +var_pannotationsnode11 = var_nodearraylist11; +/* isa nullable AAnnotations */ +cltype32 = type_nullable_parser_nodes__AAnnotations.color; +idtype33 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode11 == NULL) { +var31 = 1; } else { -if(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype32 >= var_pannotationsnode11->type->table_size) { +var31 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var31 = var_pannotationsnode11->type->type_table[cltype32] == idtype33; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2086); +if (unlikely(!var31)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3677); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var11; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype13 = type_array__Arraykernel__Object.color; -idtype14 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var12 = 0; +var_pexprnode12 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype35 = type_nullable_parser_nodes__AExpr.color; +idtype36 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode12 == NULL) { +var34 = 1; } else { -if(cltype13 >= var_listnode6->type->table_size) { -var12 = 0; +if(cltype35 >= var_pexprnode12->type->table_size) { +var34 = 0; } else { -var12 = var_listnode6->type->type_table[cltype13] == idtype14; +var34 = var_pexprnode12->type->type_table[cltype35] == idtype36; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2089); +if (unlikely(!var34)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3679); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var15; -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var37 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var38 = NULL; +var39 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var37, var_pdocnode2, var38, var_pablenode4, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var39, var_tidnode9, var_ptypenode10, var_pannotationsnode11, var_pexprnode12); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var37; +var_node_list = var_ppropdefnode1; +var40 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var41 = parser_work__Parser__go_to(var_p, var40); +} +{ +parser_work__Parser__push(var_p, var41, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction11#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction11__action(val* self, val* p0) { -parser__ReduceAction11__action(self, p0); +/* method parser#ReduceAction78#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction78__action(val* self, val* p0) { +parser__ReduceAction78__action(self, p0); /* Direct call parser#ReduceAction78#action on */ RET_LABEL:; } -/* method parser#ReduceAction12#action for (self: ReduceAction12, Parser) */ -void parser__ReduceAction12__action(val* self, val* p0) { +/* method parser#ReduceAction79#action for (self: ReduceAction79, Parser) */ +void parser__ReduceAction79__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : AModule */; -val* var13 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var14 /* : Int */; -long var15 /* : Int */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tkwinitnode5 /* var tkwinitnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pexprnode9 /* var pexprnode9: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var25 /* : AConcreteInitPropdef */; +val* var26 /* : null */; +val* var27 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteInitPropdef */; +long var28 /* : Int */; +long var29 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var6 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var9 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; } else { -var6 = var_listnode4->type->type_table[cltype] == idtype; +var9 = 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", 2112); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3711); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var7; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var8 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype11 = type_nullable_parser_nodes__TKwredef.color; +idtype12 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var10 = 1; } else { -if(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2115); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3713); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var11; -var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var13 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var12; -var_node_list = var_pmodulenode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; -RET_LABEL:; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype14 = type_nullable_parser_nodes__AVisibility.color; +idtype15 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_pvisibilitynode4->type->table_size) { +var13 = 0; +} else { +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } -/* method parser#ReduceAction12#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction12__action(val* self, val* p0) { -parser__ReduceAction12__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction13#action for (self: ReduceAction13, Parser) */ -void parser__ReduceAction13__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var17 /* : Int */; -long var18 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3715); +show_backtrace(1); +} +var_tkwinitnode5 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype17 = type_nullable_parser_nodes__TKwinit.color; +idtype18 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode5 == NULL) { +var16 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype17 >= var_tkwinitnode5->type->table_size) { +var16 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var16 = var_tkwinitnode5->type->type_table[cltype17] == idtype18; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2139); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3717); show_backtrace(1); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var8 = 0; +var_psignaturenode7 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype20 = type_nullable_parser_nodes__ASignature.color; +idtype21 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var19 = 1; } else { -if(cltype9 >= var_listnode4->type->table_size) { -var8 = 0; +if(cltype20 >= var_psignaturenode7->type->table_size) { +var19 = 0; } else { -var8 = var_listnode4->type->type_table[cltype9] == idtype10; +var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2141); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3719); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var11; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype13 = type_array__Arraykernel__Object.color; -idtype14 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var12 = 0; +var_pexprnode9 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype23 = type_nullable_parser_nodes__AExpr.color; +idtype24 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode9 == NULL) { +var22 = 1; } else { -if(cltype13 >= var_listnode6->type->table_size) { -var12 = 0; +if(cltype23 >= var_pexprnode9->type->table_size) { +var22 = 0; } else { -var12 = var_listnode6->type->type_table[cltype13] == idtype14; +var22 = var_pexprnode9->type->type_table[cltype23] == idtype24; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2144); +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3721); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var15; -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var25 = NEW_parser_nodes__AConcreteInitPropdef(&type_parser_nodes__AConcreteInitPropdef); +var26 = NULL; +var27 = NULL; +{ +parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwinitnode5, var26, var_psignaturenode7, var27, var_pexprnode9); /* Direct call parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef on */ +} +var_ppropdefnode1 = var25; +var_node_list = var_ppropdefnode1; +var28 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var29 = parser_work__Parser__go_to(var_p, var28); +} +{ +parser_work__Parser__push(var_p, var29, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction13#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction13__action(val* self, val* p0) { -parser__ReduceAction13__action(self, p0); +/* method parser#ReduceAction79#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction79__action(val* self, val* p0) { +parser__ReduceAction79__action(self, p0); /* Direct call parser#ReduceAction79#action on */ RET_LABEL:; } -/* method parser#ReduceAction14#action for (self: ReduceAction14, Parser) */ -void parser__ReduceAction14__action(val* self, val* p0) { +/* method parser#ReduceAction80#action for (self: ReduceAction80, Parser) */ +void parser__ReduceAction80__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : AModule */; -val* var18 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var19 /* : Int */; -long var20 /* : Int */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwinitnode5 /* var tkwinitnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode6 /* var pmethidnode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode9 /* var pexprnode9: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AConcreteInitPropdef */; +val* var30 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteInitPropdef */; +long var31 /* : Int */; +long var32 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode8 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var10 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2168); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3751); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var9 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype12 = type_nullable_parser_nodes__TKwredef.color; +idtype13 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var11 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2171); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3753); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var12; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var13 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype15 = type_nullable_parser_nodes__AVisibility.color; +idtype16 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var14 = 1; } else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2174); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3755); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var16; -var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var18 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var17; -var_node_list = var_pmodulenode1; -var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction14#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction14__action(val* self, val* p0) { -parser__ReduceAction14__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction15#action for (self: ReduceAction15, Parser) */ -void parser__ReduceAction15__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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : Array[Object] */; -val* var21 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var22 /* : Int */; -long var23 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode8 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +var_tkwinitnode5 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype18 = type_nullable_parser_nodes__TKwinit.color; +idtype19 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode5 == NULL) { +var17 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype18 >= var_tkwinitnode5->type->table_size) { +var17 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var17 = var_tkwinitnode5->type->type_table[cltype18] == idtype19; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2199); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3757); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; +var_pmethidnode6 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode6 == NULL) { +var20 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype21 >= var_pmethidnode6->type->table_size) { +var20 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2201); +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3759); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var13 = 0; +var_psignaturenode7 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var23 = 1; } else { -if(cltype14 >= var_listnode5->type->table_size) { -var13 = 0; +if(cltype24 >= var_psignaturenode7->type->table_size) { +var23 = 0; } else { -var13 = var_listnode5->type->type_table[cltype14] == idtype15; +var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2204); +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3761); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var16; -var_listnode7 = var_nodearraylist4; -/* isa Array[Object] */ -cltype18 = type_array__Arraykernel__Object.color; -idtype19 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var17 = 0; +var_pexprnode9 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode9 == NULL) { +var26 = 1; } else { -if(cltype18 >= var_listnode7->type->table_size) { -var17 = 0; +if(cltype27 >= var_pexprnode9->type->table_size) { +var26 = 0; } else { -var17 = var_listnode7->type->type_table[cltype18] == idtype19; +var26 = var_pexprnode9->type->type_table[cltype27] == idtype28; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2207); +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3763); show_backtrace(1); } -var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var20; -var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var21; -var_node_list = var_pmodulenode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; +var29 = NEW_parser_nodes__AConcreteInitPropdef(&type_parser_nodes__AConcreteInitPropdef); +var30 = NULL; +{ +parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwinitnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexprnode9); /* Direct call parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef on */ +} +var_ppropdefnode1 = var29; +var_node_list = var_ppropdefnode1; +var31 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var32 = parser_work__Parser__go_to(var_p, var31); +} +{ +parser_work__Parser__push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction15#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction15__action(val* self, val* p0) { -parser__ReduceAction15__action(self, p0); +/* method parser#ReduceAction80#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction80__action(val* self, val* p0) { +parser__ReduceAction80__action(self, p0); /* Direct call parser#ReduceAction80#action on */ RET_LABEL:; } -/* method parser#ReduceAction16#action for (self: ReduceAction16, Parser) */ -void parser__ReduceAction16__action(val* self, val* p0) { +/* method parser#ReduceAction81#action for (self: ReduceAction81, Parser) */ +void parser__ReduceAction81__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_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var8 /* : ATopClassdef */; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */; -val* var9 /* : null */; -short int var10 /* : Bool */; -val* var11 /* : AModule */; -val* var12 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var13 /* : Int */; -long var14 /* : Int */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwinitnode5 /* var tkwinitnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode9 /* var pexprnode9: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AConcreteInitPropdef */; +val* var30 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteInitPropdef */; +long var31 /* : Int */; +long var32 /* : 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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode8 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode6 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var6 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_listnode6->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var6 = var_listnode6->type->type_table[cltype] == idtype; +var10 = 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", 2230); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3793); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var7; -var8 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var8->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var8, var_listnode7) /* init_atopclassdef on */; -var_pclassdefnode5 = var8; -var9 = NULL; -if (var_pclassdefnode5 == NULL) { -var10 = 0; /* is null */ +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype12 = type_nullable_parser_nodes__TKwredef.color; +idtype13 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var11 = 1; } else { -var10 = 1; /* arg is null and recv is not */ -} -if (var10){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on */; +if(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; } else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } -var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var12 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var12, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var11; -var_node_list = var_pmodulenode1; -var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction16#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction16__action(val* self, val* p0) { -parser__ReduceAction16__action(self, p0); -RET_LABEL:; +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3795); +show_backtrace(1); } -/* method parser#ReduceAction17#action for (self: ReduceAction17, Parser) */ -void parser__ReduceAction17__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : ATopClassdef */; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */; -val* var13 /* : null */; -short int var14 /* : Bool */; -val* var15 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var16 /* : Int */; -long var17 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode8 = var5; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var6 = 1; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype15 = type_nullable_parser_nodes__AVisibility.color; +idtype16 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var14 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2259); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3797); show_backtrace(1); } -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode7 = var7; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var8 = 0; +var_tkwinitnode5 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype18 = type_nullable_parser_nodes__TKwinit.color; +idtype19 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode5 == NULL) { +var17 = 1; } else { -if(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype18 >= var_tkwinitnode5->type->table_size) { +var17 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var17 = var_tkwinitnode5->type->type_table[cltype18] == idtype19; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2262); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3799); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var11; -var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode7) /* init_atopclassdef on */; -var_pclassdefnode5 = var12; -var13 = NULL; -if (var_pclassdefnode5 == NULL) { -var14 = 0; /* is null */ +var_psignaturenode7 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype21 = type_nullable_parser_nodes__ASignature.color; +idtype22 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var20 = 1; } else { -var14 = 1; /* arg is null and recv is not */ -} -if (var14){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on */; +if(cltype21 >= var_psignaturenode7->type->table_size) { +var20 = 0; } else { +var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22; } -var15 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var15, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var15; -var_node_list = var_pmodulenode1; -var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction17#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction17__action(val* self, val* p0) { -parser__ReduceAction17__action(self, p0); -RET_LABEL:; +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3801); +show_backtrace(1); } -/* method parser#ReduceAction18#action for (self: ReduceAction18, Parser) */ -void parser__ReduceAction18__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var14 /* : null */; -short int var15 /* : Bool */; -val* var16 /* : AModule */; -val* var17 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode9 = var5; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +var_pannotationsnode8 = var_nodearraylist6; +/* isa nullable AAnnotations */ +cltype24 = type_nullable_parser_nodes__AAnnotations.color; +idtype25 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode8 == NULL) { +var23 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype24 >= var_pannotationsnode8->type->table_size) { +var23 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var23 = var_pannotationsnode8->type->type_table[cltype24] == idtype25; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2291); +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3803); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode8 = var8; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var9 = 0; +var_pexprnode9 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode9 == NULL) { +var26 = 1; } else { -if(cltype10 >= var_listnode7->type->table_size) { -var9 = 0; +if(cltype27 >= var_pexprnode9->type->table_size) { +var26 = 0; } else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +var26 = var_pexprnode9->type->type_table[cltype27] == idtype28; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2295); +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3805); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var12; -var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var13; -var14 = NULL; -if (var_pclassdefnode6 == NULL) { -var15 = 0; /* is null */ -} else { -var15 = 1; /* arg is null and recv is not */ +var29 = NEW_parser_nodes__AConcreteInitPropdef(&type_parser_nodes__AConcreteInitPropdef); +var30 = NULL; +{ +parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwinitnode5, var30, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9); /* Direct call parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef on */ } -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; -} else { +var_ppropdefnode1 = var29; +var_node_list = var_ppropdefnode1; +var31 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var32 = parser_work__Parser__go_to(var_p, var31); +} +{ +parser_work__Parser__push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on */ } -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var17 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction18#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction18__action(val* self, val* p0) { -parser__ReduceAction18__action(self, p0); +/* method parser#ReduceAction81#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction81__action(val* self, val* p0) { +parser__ReduceAction81__action(self, p0); /* Direct call parser#ReduceAction81#action on */ RET_LABEL:; } -/* method parser#ReduceAction19#action for (self: ReduceAction19, Parser) */ -void parser__ReduceAction19__action(val* self, val* p0) { +/* method parser#ReduceAction82#action for (self: ReduceAction82, Parser) */ +void parser__ReduceAction82__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var21 /* : Int */; -long var22 /* : Int */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwinitnode5 /* var tkwinitnode5: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pmethidnode6 /* var pmethidnode6: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode9 /* var pexprnode9: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AConcreteInitPropdef */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteInitPropdef */; +long var34 /* : Int */; +long var35 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode9 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist10 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2325); -show_backtrace(1); +var_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; -} else { -if(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2327); -show_backtrace(1); +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var11; -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -var_listnode8 = var12; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var13 = 0; +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var10; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var11 = 1; } else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var11 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2331); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3836); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var16; -var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype13 = type_nullable_parser_nodes__TKwredef.color; +idtype14 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var12 = 1; } else { -var19 = 1; /* arg is null and recv is not */ -} -if (var19){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; } else { +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; } -var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var20; -var_node_list = var_pmodulenode1; -var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction19#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction19__action(val* self, val* p0) { -parser__ReduceAction19__action(self, p0); -RET_LABEL:; +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3838); +show_backtrace(1); } -/* method parser#ReduceAction20#action for (self: ReduceAction20, Parser) */ -void parser__ReduceAction20__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var14 /* : null */; -short int var15 /* : Bool */; -val* var16 /* : AModule */; -val* var17 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode9 = var5; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var6 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype16 = type_nullable_parser_nodes__AVisibility.color; +idtype17 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var15 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var6 = 0; +if(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; } else { -var6 = var_listnode4->type->type_table[cltype] == idtype; +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2360); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3840); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode8 = var8; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var9 = 0; +var_tkwinitnode5 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype19 = type_nullable_parser_nodes__TKwinit.color; +idtype20 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode5 == NULL) { +var18 = 1; } else { -if(cltype10 >= var_listnode7->type->table_size) { -var9 = 0; +if(cltype19 >= var_tkwinitnode5->type->table_size) { +var18 = 0; } else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +var18 = var_tkwinitnode5->type->type_table[cltype19] == idtype20; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2364); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3842); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var12; -var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var13; -var14 = NULL; -if (var_pclassdefnode6 == NULL) { -var15 = 0; /* is null */ +var_pmethidnode6 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype22 = type_nullable_parser_nodes__AMethid.color; +idtype23 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode6 == NULL) { +var21 = 1; } else { -var15 = 1; /* arg is null and recv is not */ -} -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if(cltype22 >= var_pmethidnode6->type->table_size) { +var21 = 0; } else { +var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23; } -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var17 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction20#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction20__action(val* self, val* p0) { -parser__ReduceAction20__action(self, p0); -RET_LABEL:; +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3844); +show_backtrace(1); } -/* method parser#ReduceAction21#action for (self: ReduceAction21, Parser) */ -void parser__ReduceAction21__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var21 /* : Int */; -long var22 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode9 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +var_psignaturenode7 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype25 = type_nullable_parser_nodes__ASignature.color; +idtype26 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var24 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype25 >= var_psignaturenode7->type->table_size) { +var24 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2394); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3846); show_backtrace(1); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var8 = 0; +var_pannotationsnode8 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype28 = type_nullable_parser_nodes__AAnnotations.color; +idtype29 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode8 == NULL) { +var27 = 1; } else { -if(cltype9 >= var_listnode4->type->table_size) { -var8 = 0; +if(cltype28 >= var_pannotationsnode8->type->table_size) { +var27 = 0; } else { -var8 = var_listnode4->type->type_table[cltype9] == idtype10; +var27 = var_pannotationsnode8->type->type_table[cltype28] == idtype29; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2396); +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3848); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var11; -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -var_listnode8 = var12; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var13 = 0; +var_pexprnode9 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode9 == NULL) { +var30 = 1; } else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype31 >= var_pexprnode9->type->table_size) { +var30 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var30 = var_pexprnode9->type->type_table[cltype31] == idtype32; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2400); +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3850); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var16; -var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ +var33 = NEW_parser_nodes__AConcreteInitPropdef(&type_parser_nodes__AConcreteInitPropdef); +{ +parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwinitnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9); /* Direct call parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef on */ } -if (var19){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; -} else { +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var35 = parser_work__Parser__go_to(var_p, var34); +} +{ +parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on */ } -var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var20; -var_node_list = var_pmodulenode1; -var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction21#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction21__action(val* self, val* p0) { -parser__ReduceAction21__action(self, p0); +/* method parser#ReduceAction82#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction82__action(val* self, val* p0) { +parser__ReduceAction82__action(self, p0); /* Direct call parser#ReduceAction82#action on */ RET_LABEL:; } -/* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */ -void parser__ReduceAction22__action(val* self, val* p0) { +/* method parser#ReduceAction83#action for (self: ReduceAction83, Parser) */ +void parser__ReduceAction83__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var19 /* : null */; -short int var20 /* : Bool */; -val* var21 /* : AModule */; -val* var22 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwtypenode5 /* var tkwtypenode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var27 /* : ATypePropdef */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable ATypePropdef */; +long var28 /* : Int */; +long var29 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var8 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var8 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2430); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3878); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var9 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype10 = type_nullable_parser_nodes__TKwredef.color; +idtype11 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var9 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { +if(cltype10 >= var_tkwredefnode3->type->table_size) { var9 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2433); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3880); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var12; -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -var_listnode9 = var13; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var14 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype13 = type_nullable_parser_nodes__AVisibility.color; +idtype14 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var12 = 1; } else { -if(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype13 >= var_pvisibilitynode4->type->table_size) { +var12 = 0; +} else { +var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3882); +show_backtrace(1); +} +var_tkwtypenode5 = var_nodearraylist4; +/* isa nullable TKwtype */ +cltype16 = type_nullable_parser_nodes__TKwtype.color; +idtype17 = type_nullable_parser_nodes__TKwtype.id; +if(var_tkwtypenode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= var_tkwtypenode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwtypenode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3884); +show_backtrace(1); +} +var_tclassidnode6 = var_nodearraylist5; +/* isa nullable TClassid */ +cltype19 = type_nullable_parser_nodes__TClassid.color; +idtype20 = type_nullable_parser_nodes__TClassid.id; +if(var_tclassidnode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tclassidnode6->type->table_size) { +var18 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2437); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3886); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var17; -var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var18; -var19 = NULL; -if (var_pclassdefnode7 == NULL) { -var20 = 0; /* is null */ +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype22 = type_nullable_parser_nodes__AType.color; +idtype23 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_ptypenode7->type->table_size) { +var21 = 0; } else { -var20 = 1; /* arg is null and recv is not */ +var21 = var_ptypenode7->type->type_table[cltype22] == idtype23; } -if (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3888); +show_backtrace(1); +} +var_pannotationsnode8 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype25 = type_nullable_parser_nodes__AAnnotations.color; +idtype26 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode8 == NULL) { +var24 = 1; } else { +if(cltype25 >= var_pannotationsnode8->type->table_size) { +var24 = 0; +} else { +var24 = var_pannotationsnode8->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3890); +show_backtrace(1); +} +var27 = NEW_parser_nodes__ATypePropdef(&type_parser_nodes__ATypePropdef); +{ +parser_prod__ATypePropdef__init_atypepropdef(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwtypenode5, var_tclassidnode6, var_ptypenode7, var_pannotationsnode8); /* Direct call parser_prod#ATypePropdef#init_atypepropdef on */ +} +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var28 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var29 = parser_work__Parser__go_to(var_p, var28); +} +{ +parser_work__Parser__push(var_p, var29, var_node_list); /* Direct call parser_work#Parser#push on */ } -var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var22 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var21; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction22#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction22__action(val* self, val* p0) { -parser__ReduceAction22__action(self, p0); +/* method parser#ReduceAction83#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction83__action(val* self, val* p0) { +parser__ReduceAction83__action(self, p0); /* Direct call parser#ReduceAction83#action on */ RET_LABEL:; } -/* method parser#ReduceAction23#action for (self: ReduceAction23, Parser) */ -void parser__ReduceAction23__action(val* self, val* p0) { +/* method parser#ReduceAction84#action for (self: ReduceAction84, Parser) */ +void parser__ReduceAction84__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* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var21 /* : Array[Object] */; -val* var22 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var23 /* : null */; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_tstringnode9 /* var tstringnode9: nullable Object */; short int var24 /* : Bool */; -val* var25 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +int cltype25; +int idtype26; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AExternInitPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var36 /* : Int */; +long var37 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var10; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var11 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var11 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2468); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3920); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype13 = type_nullable_parser_nodes__TKwredef.color; +idtype14 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var12 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2470); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3922); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var13 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype16 = type_nullable_parser_nodes__AVisibility.color; +idtype17 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var15 = 1; } else { -if(cltype14 >= var_listnode5->type->table_size) { -var13 = 0; +if(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; } else { -var13 = var_listnode5->type->type_table[cltype14] == idtype15; +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2473); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3924); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var16; -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -var_listnode9 = var17; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var18 = 0; +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype19 = type_nullable_parser_nodes__TKwnew.color; +idtype20 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var18 = 1; } else { -if(cltype19 >= var_listnode8->type->table_size) { +if(cltype19 >= var_tkwnewnode5->type->table_size) { var18 = 0; } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; +var18 = var_tkwnewnode5->type->type_table[cltype19] == idtype20; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2477); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3926); show_backtrace(1); } -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var21; -var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ +var_psignaturenode7 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype22 = type_nullable_parser_nodes__ASignature.color; +idtype23 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var21 = 1; } else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; +if(cltype22 >= var_psignaturenode7->type->table_size) { +var21 = 0; } else { +var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23; } -var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var25; -var_node_list = var_pmodulenode1; -var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction23#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction23__action(val* self, val* p0) { -parser__ReduceAction23__action(self, p0); -RET_LABEL:; +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3928); +show_backtrace(1); } -/* method parser#ReduceAction24#action for (self: ReduceAction24, Parser) */ -void parser__ReduceAction24__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var12 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var13 /* : Array[Object] */; -val* var14 /* : null */; -short int var15 /* : Bool */; -val* var16 /* : AModule */; -val* var17 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode9 = var5; -var_listnode5 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var6 = 0; +var_tstringnode9 = var_nodearraylist8; +/* isa nullable TString */ +cltype25 = type_nullable_parser_nodes__TString.color; +idtype26 = type_nullable_parser_nodes__TString.id; +if(var_tstringnode9 == NULL) { +var24 = 1; } else { -if(cltype >= var_listnode5->type->table_size) { -var6 = 0; +if(cltype25 >= var_tstringnode9->type->table_size) { +var24 = 0; } else { -var6 = var_listnode5->type->type_table[cltype] == idtype; +var24 = var_tstringnode9->type->type_table[cltype25] == idtype26; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2506); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3930); show_backtrace(1); } -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode8 = var7; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var8 = 0; +var_pexterncallsnode10 = var_nodearraylist9; +/* isa nullable AExternCalls */ +cltype28 = type_nullable_parser_nodes__AExternCalls.color; +idtype29 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var27 = 1; } else { -if(cltype9 >= var_listnode7->type->table_size) { -var8 = 0; +if(cltype28 >= var_pexterncallsnode10->type->table_size) { +var27 = 0; } else { -var8 = var_listnode7->type->type_table[cltype9] == idtype10; +var27 = var_pexterncallsnode10->type->type_table[cltype28] == idtype29; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2509); +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3932); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var11; -var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var12; -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on */; -var_listnode9 = var13; -var14 = NULL; -if (var_pclassdefnode6 == NULL) { -var15 = 0; /* is null */ +var_pexterncodeblocknode11 = var_nodearraylist10; +/* isa nullable AExternCodeBlock */ +cltype31 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype32 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var30 = 1; } else { -var15 = 1; /* arg is null and recv is not */ -} -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if(cltype31 >= var_pexterncodeblocknode11->type->table_size) { +var30 = 0; } else { +var30 = var_pexterncodeblocknode11->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3934); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var34 = NULL; +var35 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var34, var_psignaturenode7, var35, var_tstringnode9, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var36 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var37 = parser_work__Parser__go_to(var_p, var36); +} +{ +parser_work__Parser__push(var_p, var37, var_node_list); /* Direct call parser_work#Parser#push on */ } -var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var17 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var16; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction24#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction24__action(val* self, val* p0) { -parser__ReduceAction24__action(self, p0); +/* method parser#ReduceAction84#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction84__action(val* self, val* p0) { +parser__ReduceAction84__action(self, p0); /* Direct call parser#ReduceAction84#action on */ RET_LABEL:; } -/* method parser#ReduceAction25#action for (self: ReduceAction25, Parser) */ -void parser__ReduceAction25__action(val* self, val* p0) { +/* method parser#ReduceAction85#action for (self: ReduceAction85, Parser) */ +void parser__ReduceAction85__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var12 /* : Bool */; int cltype; int idtype; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var17 /* : Array[Object] */; -val* var18 /* : null */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; short int var19 /* : Bool */; -val* var20 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var21 /* : Int */; -long var22 /* : Int */; +int cltype20; +int idtype21; +val* var_pmethidnode6 /* var pmethidnode6: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_tstringnode9 /* var tstringnode9: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +val* var37 /* : AExternInitPropdef */; +val* var38 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var39 /* : Int */; +long var40 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode9 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist11 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var10; +{ +var11 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var11; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var12 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var12 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var12 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2540); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3968); show_backtrace(1); } -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var8 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype14 = type_nullable_parser_nodes__TKwredef.color; +idtype15 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var13 = 1; } else { -if(cltype9 >= var_listnode5->type->table_size) { -var8 = 0; +if(cltype14 >= var_tkwredefnode3->type->table_size) { +var13 = 0; } else { -var8 = var_listnode5->type->type_table[cltype9] == idtype10; +var13 = var_tkwredefnode3->type->type_table[cltype14] == idtype15; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2542); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3970); show_backtrace(1); } -var11 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on */; -var_listnode8 = var11; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype13 = type_array__Arraykernel__Object.color; -idtype14 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var12 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype17 = type_nullable_parser_nodes__AVisibility.color; +idtype18 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var16 = 1; } else { -if(cltype13 >= var_listnode7->type->table_size) { -var12 = 0; +if(cltype17 >= var_pvisibilitynode4->type->table_size) { +var16 = 0; +} else { +var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3972); +show_backtrace(1); +} +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype20 = type_nullable_parser_nodes__TKwnew.color; +idtype21 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_tkwnewnode5->type->table_size) { +var19 = 0; } else { -var12 = var_listnode7->type->type_table[cltype13] == idtype14; +var19 = var_tkwnewnode5->type->type_table[cltype20] == idtype21; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2545); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3974); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var15; -var16 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var16->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var16, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var16; -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on */; -var_listnode9 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ +var_pmethidnode6 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype23 = type_nullable_parser_nodes__AMethid.color; +idtype24 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode6 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_pmethidnode6->type->table_size) { +var22 = 0; } else { -var19 = 1; /* arg is null and recv is not */ +var22 = var_pmethidnode6->type->type_table[cltype23] == idtype24; +} } -if (var19){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3976); +show_backtrace(1); +} +var_psignaturenode7 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype26 = type_nullable_parser_nodes__ASignature.color; +idtype27 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var25 = 1; } else { +if(cltype26 >= var_psignaturenode7->type->table_size) { +var25 = 0; +} else { +var25 = var_psignaturenode7->type->type_table[cltype26] == idtype27; } -var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var20; -var_node_list = var_pmodulenode1; -var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction25#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction25__action(val* self, val* p0) { -parser__ReduceAction25__action(self, p0); -RET_LABEL:; +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3978); +show_backtrace(1); } -/* method parser#ReduceAction26#action for (self: ReduceAction26, Parser) */ -void parser__ReduceAction26__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var18 /* : Array[Object] */; -val* var19 /* : null */; -short int var20 /* : Bool */; -val* var21 /* : AModule */; -val* var22 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +var_tstringnode9 = var_nodearraylist9; +/* isa nullable TString */ +cltype29 = type_nullable_parser_nodes__TString.color; +idtype30 = type_nullable_parser_nodes__TString.id; +if(var_tstringnode9 == NULL) { +var28 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype29 >= var_tstringnode9->type->table_size) { +var28 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var28 = var_tstringnode9->type->type_table[cltype29] == idtype30; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2576); +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3980); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var9 = 0; +var_pexterncallsnode10 = var_nodearraylist10; +/* isa nullable AExternCalls */ +cltype32 = type_nullable_parser_nodes__AExternCalls.color; +idtype33 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var31 = 1; } else { -if(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; +if(cltype32 >= var_pexterncallsnode10->type->table_size) { +var31 = 0; } else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var31 = var_pexterncallsnode10->type->type_table[cltype32] == idtype33; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2579); +if (unlikely(!var31)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3982); show_backtrace(1); } -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -var_listnode9 = var12; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var13 = 0; +var_pexterncodeblocknode11 = var_nodearraylist11; +/* isa nullable AExternCodeBlock */ +cltype35 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype36 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var34 = 1; } else { -if(cltype14 >= var_listnode8->type->table_size) { -var13 = 0; +if(cltype35 >= var_pexterncodeblocknode11->type->table_size) { +var34 = 0; } else { -var13 = var_listnode8->type->type_table[cltype14] == idtype15; +var34 = var_pexterncodeblocknode11->type->type_table[cltype35] == idtype36; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2582); +if (unlikely(!var34)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3984); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var16; -var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var17; -var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on */; -var_listnode10 = var18; -var19 = NULL; -if (var_pclassdefnode7 == NULL) { -var20 = 0; /* is null */ -} else { -var20 = 1; /* arg is null and recv is not */ +var37 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var38 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var38, var_tstringnode9, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ } -if (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +var_ppropdefnode1 = var37; +var_node_list = var_ppropdefnode1; +var39 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var40 = parser_work__Parser__go_to(var_p, var39); +} +{ +parser_work__Parser__push(var_p, var40, var_node_list); /* Direct call parser_work#Parser#push on */ } -var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var22 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var21; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction26#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction26__action(val* self, val* p0) { -parser__ReduceAction26__action(self, p0); +/* method parser#ReduceAction85#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction85__action(val* self, val* p0) { +parser__ReduceAction85__action(self, p0); /* Direct call parser#ReduceAction85#action on */ RET_LABEL:; } -/* method parser#ReduceAction27#action for (self: ReduceAction27, Parser) */ -void parser__ReduceAction27__action(val* self, val* p0) { +/* method parser#ReduceAction86#action for (self: ReduceAction86, Parser) */ +void parser__ReduceAction86__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* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : Array[Object] */; -val* var21 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var22 /* : Array[Object] */; -val* var23 /* : null */; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; short int var24 /* : Bool */; -val* var25 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var26 /* : Int */; -long var27 /* : Int */; +int cltype25; +int idtype26; +val* var27 /* : AExternInitPropdef */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var31 /* : Int */; +long var32 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { +if(cltype >= var_pdocnode2->type->table_size) { var8 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var8 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2614); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4014); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype10 = type_nullable_parser_nodes__TKwredef.color; +idtype11 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var9 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { +if(cltype10 >= var_tkwredefnode3->type->table_size) { var9 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2616); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4016); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var13 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype13 = type_nullable_parser_nodes__AVisibility.color; +idtype14 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var12 = 1; } else { -if(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; +if(cltype13 >= var_pvisibilitynode4->type->table_size) { +var12 = 0; } else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2619); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4018); show_backtrace(1); } -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; -var_listnode9 = var16; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype18 = type_array__Arraykernel__Object.color; -idtype19 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var17 = 0; +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype16 = type_nullable_parser_nodes__TKwnew.color; +idtype17 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var15 = 1; } else { -if(cltype18 >= var_listnode8->type->table_size) { -var17 = 0; +if(cltype16 >= var_tkwnewnode5->type->table_size) { +var15 = 0; } else { -var17 = var_listnode8->type->type_table[cltype18] == idtype19; +var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2622); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4020); show_backtrace(1); } -var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var20; -var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var21; -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on */; -var_listnode10 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { -} -var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var25; -var_node_list = var_pmodulenode1; -var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction27#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction27__action(val* self, val* p0) { -parser__ReduceAction27__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction28#action for (self: ReduceAction28, Parser) */ -void parser__ReduceAction28__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var18 /* : Array[Object] */; -val* var19 /* : null */; -short int var20 /* : Bool */; -val* var21 /* : AModule */; -val* var22 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var7 = 0; +var_psignaturenode7 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype19 = type_nullable_parser_nodes__ASignature.color; +idtype20 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var18 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype19 >= var_psignaturenode7->type->table_size) { +var18 = 0; } else { -var7 = var_listnode4->type->type_table[cltype] == idtype; +var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2653); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4022); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var8; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var9 = 0; +var_pexterncallsnode10 = var_nodearraylist6; +/* isa nullable AExternCalls */ +cltype22 = type_nullable_parser_nodes__AExternCalls.color; +idtype23 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var21 = 1; } else { -if(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; +if(cltype22 >= var_pexterncallsnode10->type->table_size) { +var21 = 0; } else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var21 = var_pexterncallsnode10->type->type_table[cltype22] == idtype23; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2656); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4024); show_backtrace(1); } -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -var_listnode9 = var12; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var13 = 0; +var_pexterncodeblocknode11 = var_nodearraylist7; +/* isa nullable AExternCodeBlock */ +cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var24 = 1; } else { -if(cltype14 >= var_listnode8->type->table_size) { -var13 = 0; +if(cltype25 >= var_pexterncodeblocknode11->type->table_size) { +var24 = 0; } else { -var13 = var_listnode8->type->type_table[cltype14] == idtype15; +var24 = var_pexterncodeblocknode11->type->type_table[cltype25] == idtype26; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2659); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4026); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var16; -var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var17; -var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on */; -var_listnode10 = var18; -var19 = NULL; -if (var_pclassdefnode7 == NULL) { -var20 = 0; /* is null */ -} else { -var20 = 1; /* arg is null and recv is not */ +var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var28 = NULL; +var29 = NULL; +var30 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var28, var_psignaturenode7, var29, var30, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ } -if (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var31 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var32 = parser_work__Parser__go_to(var_p, var31); +} +{ +parser_work__Parser__push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on */ } -var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var22 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var21; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction28#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction28__action(val* self, val* p0) { -parser__ReduceAction28__action(self, p0); +/* method parser#ReduceAction86#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction86__action(val* self, val* p0) { +parser__ReduceAction86__action(self, p0); /* Direct call parser#ReduceAction86#action on */ RET_LABEL:; } -/* method parser#ReduceAction29#action for (self: ReduceAction29, Parser) */ -void parser__ReduceAction29__action(val* self, val* p0) { +/* method parser#ReduceAction87#action for (self: ReduceAction87, Parser) */ +void parser__ReduceAction87__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* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var16 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : Array[Object] */; -val* var21 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var22 /* : Array[Object] */; -val* var23 /* : null */; -short int var24 /* : Bool */; -val* var25 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var26 /* : Int */; -long var27 /* : Int */; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pmethidnode6 /* var pmethidnode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AExternInitPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var34 /* : Int */; +long var35 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; -} else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2691); -show_backtrace(1); +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var9 = 0; +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var9 = 1; } else { -if(cltype10 >= var_listnode4->type->table_size) { +if(cltype >= var_pdocnode2->type->table_size) { var9 = 0; } else { -var9 = var_listnode4->type->type_table[cltype10] == idtype11; +var9 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2693); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4057); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var12; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var13 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype11 = type_nullable_parser_nodes__TKwredef.color; +idtype12 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var10 = 1; } else { -if(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2696); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4059); show_backtrace(1); } -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; -var_listnode9 = var16; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype18 = type_array__Arraykernel__Object.color; -idtype19 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var17 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype14 = type_nullable_parser_nodes__AVisibility.color; +idtype15 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var13 = 1; } else { -if(cltype18 >= var_listnode8->type->table_size) { -var17 = 0; +if(cltype14 >= var_pvisibilitynode4->type->table_size) { +var13 = 0; } else { -var17 = var_listnode8->type->type_table[cltype18] == idtype19; +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2699); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4061); show_backtrace(1); } -var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var20; -var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var21; -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on */; -var_listnode10 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype17 = type_nullable_parser_nodes__TKwnew.color; +idtype18 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var16 = 1; } else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; +if(cltype17 >= var_tkwnewnode5->type->table_size) { +var16 = 0; } else { +var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18; } -var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var25; -var_node_list = var_pmodulenode1; -var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction29#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction29__action(val* self, val* p0) { -parser__ReduceAction29__action(self, p0); -RET_LABEL:; +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4063); +show_backtrace(1); } -/* method parser#ReduceAction30#action for (self: ReduceAction30, Parser) */ -void parser__ReduceAction30__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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype; -int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode9 /* var listnode9: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var22 /* : ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */; -val* var23 /* : Array[Object] */; -val* var24 /* : null */; -short int var25 /* : Bool */; -val* var26 /* : AModule */; -val* var27 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var28 /* : Int */; -long var29 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode11 = var7; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; +var_pmethidnode6 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype20 = type_nullable_parser_nodes__AMethid.color; +idtype21 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode6 == NULL) { +var19 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype20 >= var_pmethidnode6->type->table_size) { +var19 = 0; } else { -var8 = var_listnode3->type->type_table[cltype] == idtype; +var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2731); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4065); show_backtrace(1); } -var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var9; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var10 = 0; +var_psignaturenode7 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype23 = type_nullable_parser_nodes__ASignature.color; +idtype24 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var22 = 1; } else { -if(cltype11 >= var_listnode5->type->table_size) { -var10 = 0; +if(cltype23 >= var_psignaturenode7->type->table_size) { +var22 = 0; } else { -var10 = var_listnode5->type->type_table[cltype11] == idtype12; +var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2734); +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4067); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var13; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var14 = 0; +var_pexterncallsnode10 = var_nodearraylist7; +/* isa nullable AExternCalls */ +cltype26 = type_nullable_parser_nodes__AExternCalls.color; +idtype27 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var25 = 1; } else { -if(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; +if(cltype26 >= var_pexterncallsnode10->type->table_size) { +var25 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +var25 = var_pexterncallsnode10->type->type_table[cltype26] == idtype27; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2737); +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4069); show_backtrace(1); } -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -var_listnode10 = var17; -var_listnode9 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode9 == NULL) { -var18 = 0; +var_pexterncodeblocknode11 = var_nodearraylist8; +/* isa nullable AExternCodeBlock */ +cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var28 = 1; } else { -if(cltype19 >= var_listnode9->type->table_size) { -var18 = 0; +if(cltype29 >= var_pexterncodeblocknode11->type->table_size) { +var28 = 0; } else { -var18 = var_listnode9->type->type_table[cltype19] == idtype20; +var28 = var_pexterncodeblocknode11->type->type_table[cltype29] == idtype30; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2740); +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4071); show_backtrace(1); } -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on */; -var_listnode10 = var21; -var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode10) /* init_atopclassdef on */; -var_pclassdefnode8 = var22; -var23 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on */; -var_listnode11 = var23; -var24 = NULL; -if (var_pclassdefnode8 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 1; /* arg is null and recv is not */ +var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var32 = NULL; +var33 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var32, var33, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ } -if (var25){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on */; -} else { +var_ppropdefnode1 = var31; +var_node_list = var_ppropdefnode1; +var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var35 = parser_work__Parser__go_to(var_p, var34); +} +{ +parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on */ } -var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var27 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var27, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var26; -var_node_list = var_pmodulenode1; -var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction30#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction30__action(val* self, val* p0) { -parser__ReduceAction30__action(self, p0); +/* method parser#ReduceAction87#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction87__action(val* self, val* p0) { +parser__ReduceAction87__action(self, p0); /* Direct call parser#ReduceAction87#action on */ RET_LABEL:; } -/* method parser#ReduceAction31#action for (self: ReduceAction31, Parser) */ -void parser__ReduceAction31__action(val* self, val* p0) { +/* method parser#ReduceAction88#action for (self: ReduceAction88, Parser) */ +void parser__ReduceAction88__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* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; short int var9 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; short int var10 /* : Bool */; int cltype11; int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode9 /* var listnode9: nullable Object */; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */; short int var22 /* : Bool */; int cltype23; int idtype24; -val* var25 /* : Array[Object] */; -val* var26 /* : ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */; -val* var27 /* : Array[Object] */; -val* var28 /* : null */; -short int var29 /* : Bool */; -val* var30 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var31 /* : Int */; -long var32 /* : Int */; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AExternInitPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var34 /* : Int */; +long var35 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode11 = var8; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var9 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var9 = 0; -} else { -var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2773); -show_backtrace(1); +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var10 = 0; -} else { -if(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; -} else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2775); -show_backtrace(1); +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var13; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var14 = 0; +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var9 = 1; } else { -if(cltype15 >= var_listnode5->type->table_size) { -var14 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; } else { -var14 = var_listnode5->type->type_table[cltype15] == idtype16; +var9 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2778); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4102); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var17; -var_listnode7 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var18 = 0; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype11 = type_nullable_parser_nodes__TKwredef.color; +idtype12 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var10 = 1; } else { -if(cltype19 >= var_listnode7->type->table_size) { -var18 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var18 = var_listnode7->type->type_table[cltype19] == idtype20; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2781); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4104); show_backtrace(1); } -var21 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on */; -var_listnode10 = var21; -var_listnode9 = var_nodearraylist5; -/* isa Array[Object] */ -cltype23 = type_array__Arraykernel__Object.color; -idtype24 = type_array__Arraykernel__Object.id; -if(var_listnode9 == NULL) { -var22 = 0; +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype14 = type_nullable_parser_nodes__AVisibility.color; +idtype15 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var13 = 1; } else { -if(cltype23 >= var_listnode9->type->table_size) { -var22 = 0; +if(cltype14 >= var_pvisibilitynode4->type->table_size) { +var13 = 0; } else { -var22 = var_listnode9->type->type_table[cltype23] == idtype24; +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2784); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4106); show_backtrace(1); } -var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on */; -var_listnode10 = var25; -var26 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var26->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var26, var_listnode10) /* init_atopclassdef on */; -var_pclassdefnode8 = var26; -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on */; -var_listnode11 = var27; -var28 = NULL; -if (var_pclassdefnode8 == NULL) { -var29 = 0; /* is null */ +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype17 = type_nullable_parser_nodes__TKwnew.color; +idtype18 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var16 = 1; } else { -var29 = 1; /* arg is null and recv is not */ -} -if (var29){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on */; +if(cltype17 >= var_tkwnewnode5->type->table_size) { +var16 = 0; } else { +var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18; } -var30 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var30, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var30; -var_node_list = var_pmodulenode1; -var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction31#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction31__action(val* self, val* p0) { -parser__ReduceAction31__action(self, p0); -RET_LABEL:; +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4108); +show_backtrace(1); } -/* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */ -void parser__ReduceAction32__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_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */; -short int var5 /* : Bool */; -int cltype; -int idtype; -val* var6 /* : null */; -short int var7 /* : Bool */; -val* var8 /* : AModule */; -val* var9 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var10 /* : Int */; -long var11 /* : 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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode6 = var4; -var_pclassdefnode5 = var_nodearraylist1; -/* isa nullable AClassdef */ -cltype = type_nullable_parser_nodes__AClassdef.color; -idtype = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode5 == NULL) { -var5 = 1; +var_psignaturenode7 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype20 = type_nullable_parser_nodes__ASignature.color; +idtype21 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var19 = 1; } else { -if(cltype >= var_pclassdefnode5->type->table_size) { -var5 = 0; +if(cltype20 >= var_psignaturenode7->type->table_size) { +var19 = 0; } else { -var5 = var_pclassdefnode5->type->type_table[cltype] == idtype; +var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2813); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4110); show_backtrace(1); } -var6 = NULL; -if (var_pclassdefnode5 == NULL) { -var7 = 0; /* is null */ +var_pannotationsnode8 = var_nodearraylist6; +/* isa nullable AAnnotations */ +cltype23 = type_nullable_parser_nodes__AAnnotations.color; +idtype24 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode8 == NULL) { +var22 = 1; } else { -var7 = 1; /* arg is null and recv is not */ -} -if (var7){ -((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on */; +if(cltype23 >= var_pannotationsnode8->type->table_size) { +var22 = 0; } else { +var22 = var_pannotationsnode8->type->type_table[cltype23] == idtype24; } -var8 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var9 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var8, var9, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var8; -var_node_list = var_pmodulenode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction32#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction32__action(val* self, val* p0) { -parser__ReduceAction32__action(self, p0); -RET_LABEL:; +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4112); +show_backtrace(1); } -/* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */ -void parser__ReduceAction33__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : null */; -short int var11 /* : Bool */; -val* var12 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var13 /* : Int */; -long var14 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var6 = 1; +var_pexterncallsnode10 = var_nodearraylist7; +/* isa nullable AExternCalls */ +cltype26 = type_nullable_parser_nodes__AExternCalls.color; +idtype27 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var25 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype26 >= var_pexterncallsnode10->type->table_size) { +var25 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var25 = var_pexterncallsnode10->type->type_table[cltype26] == idtype27; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2838); +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4114); show_backtrace(1); } -var_pclassdefnode5 = var_nodearraylist2; -/* isa nullable AClassdef */ -cltype8 = type_nullable_parser_nodes__AClassdef.color; -idtype9 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode5 == NULL) { -var7 = 1; +var_pexterncodeblocknode11 = var_nodearraylist8; +/* isa nullable AExternCodeBlock */ +cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var28 = 1; } else { -if(cltype8 >= var_pclassdefnode5->type->table_size) { -var7 = 0; +if(cltype29 >= var_pexterncodeblocknode11->type->table_size) { +var28 = 0; } else { -var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9; +var28 = var_pexterncodeblocknode11->type->type_table[cltype29] == idtype30; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2840); +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4116); show_backtrace(1); } -var10 = NULL; -if (var_pclassdefnode5 == NULL) { -var11 = 0; /* is null */ -} else { -var11 = 1; /* arg is null and recv is not */ +var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var32 = NULL; +var33 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var32, var_psignaturenode7, var_pannotationsnode8, var33, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ } -if (var11){ -((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on */; -} else { +var_ppropdefnode1 = var31; +var_node_list = var_ppropdefnode1; +var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var35 = parser_work__Parser__go_to(var_p, var34); +} +{ +parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on */; -var_pmodulenode1 = var12; -var_node_list = var_pmodulenode1; -var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction33#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction33__action(val* self, val* p0) { -parser__ReduceAction33__action(self, p0); +/* method parser#ReduceAction88#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction88__action(val* self, val* p0) { +parser__ReduceAction88__action(self, p0); /* Direct call parser#ReduceAction88#action on */ RET_LABEL:; } -/* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */ -void parser__ReduceAction34__action(val* self, val* p0) { +/* method parser#ReduceAction89#action for (self: ReduceAction89, Parser) */ +void parser__ReduceAction89__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : null */; -short int var12 /* : Bool */; -val* var13 /* : AModule */; -val* var14 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode6 /* var pmethidnode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode7 /* var psignaturenode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */; +short int var32 /* : Bool */; +int cltype33; +int idtype34; +val* var35 /* : AExternInitPropdef */; +val* var36 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */; +long var37 /* : Int */; +long var38 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_pdocnode2 = var_nodearraylist1; +/* isa nullable ADoc */ +cltype = type_nullable_parser_nodes__ADoc.color; +idtype = type_nullable_parser_nodes__ADoc.id; +if(var_pdocnode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var10 = 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", 2865); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4148); show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var7; -var_pclassdefnode6 = var_nodearraylist2; -/* isa nullable AClassdef */ -cltype9 = type_nullable_parser_nodes__AClassdef.color; -idtype10 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var8 = 1; +var_tkwredefnode3 = var_nodearraylist2; +/* isa nullable TKwredef */ +cltype12 = type_nullable_parser_nodes__TKwredef.color; +idtype13 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var11 = 1; } else { -if(cltype9 >= var_pclassdefnode6->type->table_size) { -var8 = 0; +if(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; } else { -var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10; +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2868); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4150); show_backtrace(1); } -var11 = NULL; -if (var_pclassdefnode6 == NULL) { -var12 = 0; /* is null */ +var_pvisibilitynode4 = var_nodearraylist3; +/* isa nullable AVisibility */ +cltype15 = type_nullable_parser_nodes__AVisibility.color; +idtype16 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var14 = 1; } else { -var12 = 1; /* arg is null and recv is not */ +if(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; +} else { +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +} +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4152); +show_backtrace(1); } -if (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; +var_tkwnewnode5 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype18 = type_nullable_parser_nodes__TKwnew.color; +idtype19 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwnewnode5->type->table_size) { +var17 = 0; } else { +var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19; } -var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var13; -var_node_list = var_pmodulenode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction34#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction34__action(val* self, val* p0) { -parser__ReduceAction34__action(self, p0); -RET_LABEL:; +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4154); +show_backtrace(1); } -/* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */ -void parser__ReduceAction35__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : null */; -short int var16 /* : Bool */; -val* var17 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +var_pmethidnode6 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode6 == NULL) { +var20 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype21 >= var_pmethidnode6->type->table_size) { +var20 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2894); +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4156); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; +var_psignaturenode7 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode7 == NULL) { +var23 = 1; } else { -if(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype24 >= var_psignaturenode7->type->table_size) { +var23 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2896); +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4158); show_backtrace(1); } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var11; -var_pclassdefnode6 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype13 = type_nullable_parser_nodes__AClassdef.color; -idtype14 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var12 = 1; +var_pannotationsnode8 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype27 = type_nullable_parser_nodes__AAnnotations.color; +idtype28 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode8 == NULL) { +var26 = 1; } else { -if(cltype13 >= var_pclassdefnode6->type->table_size) { -var12 = 0; +if(cltype27 >= var_pannotationsnode8->type->table_size) { +var26 = 0; } else { -var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14; +var26 = var_pannotationsnode8->type->type_table[cltype27] == idtype28; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2899); +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4160); show_backtrace(1); } -var15 = NULL; -if (var_pclassdefnode6 == NULL) { -var16 = 0; /* is null */ +var_pexterncallsnode10 = var_nodearraylist8; +/* isa nullable AExternCalls */ +cltype30 = type_nullable_parser_nodes__AExternCalls.color; +idtype31 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode10 == NULL) { +var29 = 1; +} else { +if(cltype30 >= var_pexterncallsnode10->type->table_size) { +var29 = 0; } else { -var16 = 1; /* arg is null and recv is not */ +var29 = var_pexterncallsnode10->type->type_table[cltype30] == idtype31; } -if (var16){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; +} +if (unlikely(!var29)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4162); +show_backtrace(1); +} +var_pexterncodeblocknode11 = var_nodearraylist9; +/* isa nullable AExternCodeBlock */ +cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode11 == NULL) { +var32 = 1; +} else { +if(cltype33 >= var_pexterncodeblocknode11->type->table_size) { +var32 = 0; } else { +var32 = var_pexterncodeblocknode11->type->type_table[cltype33] == idtype34; +} +} +if (unlikely(!var32)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4164); +show_backtrace(1); +} +var35 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef); +var36 = NULL; +{ +parser_prod__AExternInitPropdef__init_aexterninitpropdef(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var36, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on */ +} +var_ppropdefnode1 = var35; +var_node_list = var_ppropdefnode1; +var37 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var38 = parser_work__Parser__go_to(var_p, var37); +} +{ +parser_work__Parser__push(var_p, var38, var_node_list); /* Direct call parser_work#Parser#push on */ } -var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var17; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction35#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction35__action(val* self, val* p0) { -parser__ReduceAction35__action(self, p0); +/* method parser#ReduceAction89#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction89__action(val* self, val* p0) { +parser__ReduceAction89__action(self, p0); /* Direct call parser#ReduceAction89#action on */ RET_LABEL:; } -/* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */ -void parser__ReduceAction36__action(val* self, val* p0) { +/* method parser#ReduceAction90#action for (self: ReduceAction90, Parser) */ +void parser__ReduceAction90__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4224,243 +5480,134 @@ val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : Array[Object] */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : null */; -short int var12 /* : Bool */; -val* var13 /* : AModule */; -val* var14 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */; +long var3 /* : Int */; +long var4 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var6 = 0; -} else { -if(cltype >= var_listnode4->type->table_size) { -var6 = 0; -} else { -var6 = var_listnode4->type->type_table[cltype] == idtype; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2924); -show_backtrace(1); -} -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var7; -var_pclassdefnode6 = var_nodearraylist2; -/* isa nullable AClassdef */ -cltype9 = type_nullable_parser_nodes__AClassdef.color; -idtype10 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var8 = 1; -} else { -if(cltype9 >= var_pclassdefnode6->type->table_size) { -var8 = 0; -} else { -var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2927); -show_backtrace(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -var11 = NULL; -if (var_pclassdefnode6 == NULL) { -var12 = 0; /* is null */ -} else { -var12 = 1; /* arg is null and recv is not */ +var_nodearraylist1 = var2; +var_pannotationsnode1 = var_nodearraylist2; +var_node_list = var_pannotationsnode1; +var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = parser_work__Parser__go_to(var_p, var3); } -if (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } -var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var13; -var_node_list = var_pmodulenode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction36#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction36__action(val* self, val* p0) { -parser__ReduceAction36__action(self, p0); +/* method parser#ReduceAction90#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction90__action(val* self, val* p0) { +parser__ReduceAction90__action(self, p0); /* Direct call parser#ReduceAction90#action on */ RET_LABEL:; } -/* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */ -void parser__ReduceAction37__action(val* self, val* p0) { +/* method parser#ReduceAction91#action for (self: ReduceAction91, Parser) */ +void parser__ReduceAction91__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : null */; -short int var16 /* : Bool */; -val* var17 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : Int */; +val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */; +long var5 /* : Int */; +long var6 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2953); -show_backtrace(1); +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var8 = 0; -} else { -if(cltype9 >= var_listnode4->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode4->type->type_table[cltype9] == idtype10; +var_nodearraylist1 = var4; +var_pannotationsnode1 = var_nodearraylist3; +var_node_list = var_pannotationsnode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); } +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2955); -show_backtrace(1); +RET_LABEL:; } -var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var11; -var_pclassdefnode6 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype13 = type_nullable_parser_nodes__AClassdef.color; -idtype14 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var12 = 1; -} else { -if(cltype13 >= var_pclassdefnode6->type->table_size) { -var12 = 0; -} else { -var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14; +/* method parser#ReduceAction91#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction91__action(val* self, val* p0) { +parser__ReduceAction91__action(self, p0); /* Direct call parser#ReduceAction91#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction94#action for (self: ReduceAction94, Parser) */ +void parser__ReduceAction94__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2958); -show_backtrace(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var15 = NULL; -if (var_pclassdefnode6 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 1; /* arg is null and recv is not */ +var_nodearraylist1 = var3; +var_pannotationsnode1 = var_nodearraylist3; +var_node_list = var_pannotationsnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (var16){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var17; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction37#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction37__action(val* self, val* p0) { -parser__ReduceAction37__action(self, p0); +/* method parser#ReduceAction94#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction94__action(val* self, val* p0) { +parser__ReduceAction94__action(self, p0); /* Direct call parser#ReduceAction94#action on */ RET_LABEL:; } -/* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */ -void parser__ReduceAction38__action(val* self, val* p0) { +/* method parser#ReduceAction95#action for (self: ReduceAction95, Parser) */ +void parser__ReduceAction95__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4470,299 +5617,241 @@ val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : null */; -short int var17 /* : Bool */; -val* var18 /* : AModule */; -val* var19 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : AReadAble */; +val* var_pablenode1 /* var pablenode1: nullable AReadAble */; +long var9 /* : Int */; +long var10 /* : 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode8 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +var_tkwredefnode2 = var_nodearraylist1; +/* isa nullable TKwredef */ +cltype = type_nullable_parser_nodes__TKwredef.color; +idtype = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_tkwredefnode2->type->table_size) { +var4 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var4 = var_tkwredefnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2984); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4229); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var9 = 0; +var_tkwreadablenode3 = var_nodearraylist3; +/* isa nullable TKwreadable */ +cltype6 = type_nullable_parser_nodes__TKwreadable.color; +idtype7 = type_nullable_parser_nodes__TKwreadable.id; +if(var_tkwreadablenode3 == NULL) { +var5 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype6 >= var_tkwreadablenode3->type->table_size) { +var5 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var5 = var_tkwreadablenode3->type->type_table[cltype6] == idtype7; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2987); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4231); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var12; -var_pclassdefnode7 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype14 = type_nullable_parser_nodes__AClassdef.color; -idtype15 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var13 = 1; -} else { -if(cltype14 >= var_pclassdefnode7->type->table_size) { -var13 = 0; -} else { -var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15; -} +var8 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble); +{ +parser_prod__AReadAble__init_areadable(var8, var_tkwredefnode2, var_tkwreadablenode3); /* Direct call parser_prod#AReadAble#init_areadable on */ } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2990); -show_backtrace(1); -} -var16 = NULL; -if (var_pclassdefnode7 == NULL) { -var17 = 0; /* is null */ -} else { -var17 = 1; /* arg is null and recv is not */ +var_pablenode1 = var8; +var_node_list = var_pablenode1; +var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var10 = parser_work__Parser__go_to(var_p, var9); } -if (var17){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on */ } -var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var19 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var18; -var_node_list = var_pmodulenode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction38#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction38__action(val* self, val* p0) { -parser__ReduceAction38__action(self, p0); +/* method parser#ReduceAction95#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction95__action(val* self, val* p0) { +parser__ReduceAction95__action(self, p0); /* Direct call parser#ReduceAction95#action on */ RET_LABEL:; } -/* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */ -void parser__ReduceAction39__action(val* self, val* p0) { +/* method parser#ReduceAction96#action for (self: ReduceAction96, Parser) */ +void parser__ReduceAction96__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AWriteAble */; +val* var_pablenode1 /* var pablenode1: nullable AWriteAble */; +long var12 /* : Int */; +long var13 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode8 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; -} else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3017); -show_backtrace(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; +var_nodearraylist1 = var3; +var_tkwredefnode2 = var_nodearraylist1; +/* isa nullable TKwredef */ +cltype = type_nullable_parser_nodes__TKwredef.color; +idtype = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode2 == NULL) { +var4 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype >= var_tkwredefnode2->type->table_size) { +var4 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var4 = var_tkwredefnode2->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3019); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4249); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var13 = 0; +var_pvisibilitynode3 = var_nodearraylist2; +/* isa nullable AVisibility */ +cltype6 = type_nullable_parser_nodes__AVisibility.color; +idtype7 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode3 == NULL) { +var5 = 1; } else { -if(cltype14 >= var_listnode5->type->table_size) { -var13 = 0; +if(cltype6 >= var_pvisibilitynode3->type->table_size) { +var5 = 0; } else { -var13 = var_listnode5->type->type_table[cltype14] == idtype15; +var5 = var_pvisibilitynode3->type->type_table[cltype6] == idtype7; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3022); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4251); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var16; -var_pclassdefnode7 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype18 = type_nullable_parser_nodes__AClassdef.color; -idtype19 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var17 = 1; +var_tkwwritablenode4 = var_nodearraylist3; +/* isa nullable TKwwritable */ +cltype9 = type_nullable_parser_nodes__TKwwritable.color; +idtype10 = type_nullable_parser_nodes__TKwwritable.id; +if(var_tkwwritablenode4 == NULL) { +var8 = 1; } else { -if(cltype18 >= var_pclassdefnode7->type->table_size) { -var17 = 0; +if(cltype9 >= var_tkwwritablenode4->type->table_size) { +var8 = 0; } else { -var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19; +var8 = var_tkwwritablenode4->type->type_table[cltype9] == idtype10; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3025); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4253); show_backtrace(1); } -var20 = NULL; -if (var_pclassdefnode7 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +var11 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble); +{ +parser_prod__AWriteAble__init_awriteable(var11, var_tkwredefnode2, var_pvisibilitynode3, var_tkwwritablenode4); /* Direct call parser_prod#AWriteAble#init_awriteable on */ } -if (var21){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +var_pablenode1 = var11; +var_node_list = var_pablenode1; +var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var13 = parser_work__Parser__go_to(var_p, var12); +} +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction96#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction96__action(val* self, val* p0) { +parser__ReduceAction96__action(self, p0); /* Direct call parser#ReduceAction96#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction97#action for (self: ReduceAction97, Parser) */ +void parser__ReduceAction97__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 /* : APublicVisibility */; +val* var2 /* : null */; +val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APublicVisibility */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = NEW_parser_nodes__APublicVisibility(&type_parser_nodes__APublicVisibility); +var2 = NULL; +{ +parser_prod__APublicVisibility__init_apublicvisibility(var1, var2); /* Direct call parser_prod#APublicVisibility#init_apublicvisibility on */ +} +var_pvisibilitynode1 = var1; +var_node_list = var_pvisibilitynode1; +var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = parser_work__Parser__go_to(var_p, var3); +} +{ +parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction39#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction39__action(val* self, val* p0) { -parser__ReduceAction39__action(self, p0); +/* method parser#ReduceAction97#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction97__action(val* self, val* p0) { +parser__ReduceAction97__action(self, p0); /* Direct call parser#ReduceAction97#action on */ RET_LABEL:; } -/* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */ -void parser__ReduceAction40__action(val* self, val* p0) { +/* method parser#ReduceAction98#action for (self: ReduceAction98, Parser) */ +void parser__ReduceAction98__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4770,1841 +5859,1339 @@ val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var6 /* : Bool */; +val* var_tkwpublicnode2 /* var tkwpublicnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : Array[Object] */; -val* var11 /* : null */; -short int var12 /* : Bool */; -val* var13 /* : AModule */; -val* var14 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var4 /* : APublicVisibility */; +val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APublicVisibility */; +long var5 /* : Int */; +long var6 /* : 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode7 = var5; -var_listnode5 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var6 = 0; +var_tkwpublicnode2 = var_nodearraylist1; +/* isa nullable TKwpublic */ +cltype = type_nullable_parser_nodes__TKwpublic.color; +idtype = type_nullable_parser_nodes__TKwpublic.id; +if(var_tkwpublicnode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_listnode5->type->table_size) { -var6 = 0; +if(cltype >= var_tkwpublicnode2->type->table_size) { +var3 = 0; } else { -var6 = var_listnode5->type->type_table[cltype] == idtype; +var3 = var_tkwpublicnode2->type->type_table[cltype] == idtype; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3050); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4283); show_backtrace(1); } -var_pclassdefnode6 = var_nodearraylist2; -/* isa nullable AClassdef */ -cltype8 = type_nullable_parser_nodes__AClassdef.color; -idtype9 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var7 = 1; -} else { -if(cltype8 >= var_pclassdefnode6->type->table_size) { -var7 = 0; -} else { -var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9; -} +var4 = NEW_parser_nodes__APublicVisibility(&type_parser_nodes__APublicVisibility); +{ +parser_prod__APublicVisibility__init_apublicvisibility(var4, var_tkwpublicnode2); /* Direct call parser_prod#APublicVisibility#init_apublicvisibility on */ } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3052); -show_backtrace(1); -} -var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on */; -var_listnode7 = var10; -var11 = NULL; -if (var_pclassdefnode6 == NULL) { -var12 = 0; /* is null */ -} else { -var12 = 1; /* arg is null and recv is not */ +var_pvisibilitynode1 = var4; +var_node_list = var_pvisibilitynode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); } -if (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var13; -var_node_list = var_pmodulenode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction40#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction40__action(val* self, val* p0) { -parser__ReduceAction40__action(self, p0); +/* method parser#ReduceAction98#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction98__action(val* self, val* p0) { +parser__ReduceAction98__action(self, p0); /* Direct call parser#ReduceAction98#action on */ RET_LABEL:; } -/* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */ -void parser__ReduceAction41__action(val* self, val* p0) { +/* method parser#ReduceAction99#action for (self: ReduceAction99, Parser) */ +void parser__ReduceAction99__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_tkwprivatenode2 /* var tkwprivatenode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var14 /* : Array[Object] */; -val* var15 /* : null */; -short int var16 /* : Bool */; -val* var17 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var18 /* : Int */; -long var19 /* : Int */; +val* var4 /* : APrivateVisibility */; +val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APrivateVisibility */; +long var5 /* : Int */; +long var6 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3079); -show_backtrace(1); -} -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype9 = type_array__Arraykernel__Object.color; -idtype10 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var8 = 0; -} else { -if(cltype9 >= var_listnode5->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode5->type->type_table[cltype9] == idtype10; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3081); -show_backtrace(1); -} -var_pclassdefnode6 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype12 = type_nullable_parser_nodes__AClassdef.color; -idtype13 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode6 == NULL) { -var11 = 1; +var_nodearraylist1 = var2; +var_tkwprivatenode2 = var_nodearraylist1; +/* isa nullable TKwprivate */ +cltype = type_nullable_parser_nodes__TKwprivate.color; +idtype = type_nullable_parser_nodes__TKwprivate.id; +if(var_tkwprivatenode2 == NULL) { +var3 = 1; } else { -if(cltype12 >= var_pclassdefnode6->type->table_size) { -var11 = 0; +if(cltype >= var_tkwprivatenode2->type->table_size) { +var3 = 0; } else { -var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13; +var3 = var_tkwprivatenode2->type->type_table[cltype] == idtype; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3083); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4299); show_backtrace(1); } -var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on */; -var_listnode7 = var14; -var15 = NULL; -if (var_pclassdefnode6 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 1; /* arg is null and recv is not */ +var4 = NEW_parser_nodes__APrivateVisibility(&type_parser_nodes__APrivateVisibility); +{ +parser_prod__APrivateVisibility__init_aprivatevisibility(var4, var_tkwprivatenode2); /* Direct call parser_prod#APrivateVisibility#init_aprivatevisibility on */ } -if (var16){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on */; -} else { +var_pvisibilitynode1 = var4; +var_node_list = var_pvisibilitynode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); +} +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on */; -var_pmodulenode1 = var17; -var_node_list = var_pmodulenode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction41#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction41__action(val* self, val* p0) { -parser__ReduceAction41__action(self, p0); +/* method parser#ReduceAction99#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction99__action(val* self, val* p0) { +parser__ReduceAction99__action(self, p0); /* Direct call parser#ReduceAction99#action on */ RET_LABEL:; } -/* method parser#ReduceAction42#action for (self: ReduceAction42, Parser) */ -void parser__ReduceAction42__action(val* self, val* p0) { +/* method parser#ReduceAction100#action for (self: ReduceAction100, Parser) */ +void parser__ReduceAction100__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_tkwprotectednode2 /* var tkwprotectednode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : null */; -short int var17 /* : Bool */; -val* var18 /* : AModule */; -val* var19 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var4 /* : AProtectedVisibility */; +val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AProtectedVisibility */; +long var5 /* : Int */; +long var6 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode8 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwprotectednode2 = var_nodearraylist1; +/* isa nullable TKwprotected */ +cltype = type_nullable_parser_nodes__TKwprotected.color; +idtype = type_nullable_parser_nodes__TKwprotected.id; +if(var_tkwprotectednode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_tkwprotectednode2->type->table_size) { +var3 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var3 = var_tkwprotectednode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3110); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4315); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var4 = NEW_parser_nodes__AProtectedVisibility(&type_parser_nodes__AProtectedVisibility); +{ +parser_prod__AProtectedVisibility__init_aprotectedvisibility(var4, var_tkwprotectednode2); /* Direct call parser_prod#AProtectedVisibility#init_aprotectedvisibility on */ } +var_pvisibilitynode1 = var4; +var_node_list = var_pvisibilitynode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3113); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_pclassdefnode7 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype13 = type_nullable_parser_nodes__AClassdef.color; -idtype14 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var12 = 1; +RET_LABEL:; +} +/* method parser#ReduceAction100#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction100__action(val* self, val* p0) { +parser__ReduceAction100__action(self, p0); /* Direct call parser#ReduceAction100#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction101#action for (self: ReduceAction101, Parser) */ +void parser__ReduceAction101__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwintrudenode2 /* var tkwintrudenode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var4 /* : AIntrudeVisibility */; +val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AIntrudeVisibility */; +long var5 /* : Int */; +long var6 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwintrudenode2 = var_nodearraylist1; +/* isa nullable TKwintrude */ +cltype = type_nullable_parser_nodes__TKwintrude.color; +idtype = type_nullable_parser_nodes__TKwintrude.id; +if(var_tkwintrudenode2 == NULL) { +var3 = 1; } else { -if(cltype13 >= var_pclassdefnode7->type->table_size) { -var12 = 0; +if(cltype >= var_tkwintrudenode2->type->table_size) { +var3 = 0; } else { -var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14; +var3 = var_tkwintrudenode2->type->type_table[cltype] == idtype; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3115); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4331); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on */; -var_listnode8 = var15; -var16 = NULL; -if (var_pclassdefnode7 == NULL) { -var17 = 0; /* is null */ -} else { -var17 = 1; /* arg is null and recv is not */ +var4 = NEW_parser_nodes__AIntrudeVisibility(&type_parser_nodes__AIntrudeVisibility); +{ +parser_prod__AIntrudeVisibility__init_aintrudevisibility(var4, var_tkwintrudenode2); /* Direct call parser_prod#AIntrudeVisibility#init_aintrudevisibility on */ } -if (var17){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +var_pvisibilitynode1 = var4; +var_node_list = var_pvisibilitynode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); +} +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var19 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var18; -var_node_list = var_pmodulenode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction42#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction42__action(val* self, val* p0) { -parser__ReduceAction42__action(self, p0); +/* method parser#ReduceAction101#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction101__action(val* self, val* p0) { +parser__ReduceAction101__action(self, p0); /* Direct call parser#ReduceAction101#action on */ RET_LABEL:; } -/* method parser#ReduceAction43#action for (self: ReduceAction43, Parser) */ -void parser__ReduceAction43__action(val* self, val* p0) { +/* method parser#ReduceAction102#action for (self: ReduceAction102, Parser) */ +void parser__ReduceAction102__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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : Array[Object] */; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var3 /* : AIdMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AIdMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode8 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var2 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3143); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4346); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var3 = NEW_parser_nodes__AIdMethid(&type_parser_nodes__AIdMethid); +{ +parser_prod__AIdMethid__init_aidmethid(var3, var_tidnode2); /* Direct call parser_prod#AIdMethid#init_aidmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3145); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var13 = 0; -} else { -if(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +RET_LABEL:; } +/* method parser#ReduceAction102#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction102__action(val* self, val* p0) { +parser__ReduceAction102__action(self, p0); /* Direct call parser#ReduceAction102#action on */ +RET_LABEL:; } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3148); -show_backtrace(1); +/* method parser#ReduceAction103#action for (self: ReduceAction103, Parser) */ +void parser__ReduceAction103__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tplusnode2 /* var tplusnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : APlusMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable APlusMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var_pclassdefnode7 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype17 = type_nullable_parser_nodes__AClassdef.color; -idtype18 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var16 = 1; +var_nodearraylist1 = var1; +var_tplusnode2 = var_nodearraylist1; +/* isa nullable TPlus */ +cltype = type_nullable_parser_nodes__TPlus.color; +idtype = type_nullable_parser_nodes__TPlus.id; +if(var_tplusnode2 == NULL) { +var2 = 1; } else { -if(cltype17 >= var_pclassdefnode7->type->table_size) { -var16 = 0; +if(cltype >= var_tplusnode2->type->table_size) { +var2 = 0; } else { -var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18; +var2 = var_tplusnode2->type->type_table[cltype] == idtype; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3150); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4361); show_backtrace(1); } -var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on */; -var_listnode8 = var19; -var20 = NULL; -if (var_pclassdefnode7 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__APlusMethid(&type_parser_nodes__APlusMethid); +{ +parser_prod__APlusMethid__init_aplusmethid(var3, var_tplusnode2); /* Direct call parser_prod#APlusMethid#init_aplusmethid on */ } -if (var21){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction43#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction43__action(val* self, val* p0) { -parser__ReduceAction43__action(self, p0); +/* method parser#ReduceAction103#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction103__action(val* self, val* p0) { +parser__ReduceAction103__action(self, p0); /* Direct call parser#ReduceAction103#action on */ RET_LABEL:; } -/* method parser#ReduceAction44#action for (self: ReduceAction44, Parser) */ -void parser__ReduceAction44__action(val* self, val* p0) { +/* method parser#ReduceAction104#action for (self: ReduceAction104, Parser) */ +void parser__ReduceAction104__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var7 /* : Bool */; +val* var_tminusnode2 /* var tminusnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : Array[Object] */; -val* var16 /* : null */; -short int var17 /* : Bool */; -val* var18 /* : AModule */; -val* var19 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var3 /* : AMinusMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AMinusMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode8 = var6; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var7 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tminusnode2 = var_nodearraylist1; +/* isa nullable TMinus */ +cltype = type_nullable_parser_nodes__TMinus.color; +idtype = type_nullable_parser_nodes__TMinus.id; +if(var_tminusnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype >= var_tminusnode2->type->table_size) { +var2 = 0; } else { -var7 = var_listnode4->type->type_table[cltype] == idtype; +var2 = var_tminusnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3177); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4376); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var8; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var3 = NEW_parser_nodes__AMinusMethid(&type_parser_nodes__AMinusMethid); +{ +parser_prod__AMinusMethid__init_aminusmethid(var3, var_tminusnode2); /* Direct call parser_prod#AMinusMethid#init_aminusmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3180); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_pclassdefnode7 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype13 = type_nullable_parser_nodes__AClassdef.color; -idtype14 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var12 = 1; +RET_LABEL:; +} +/* method parser#ReduceAction104#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction104__action(val* self, val* p0) { +parser__ReduceAction104__action(self, p0); /* Direct call parser#ReduceAction104#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction105#action for (self: ReduceAction105, Parser) */ +void parser__ReduceAction105__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tstarnode2 /* var tstarnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AStarMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AStarMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tstarnode2 = var_nodearraylist1; +/* isa nullable TStar */ +cltype = type_nullable_parser_nodes__TStar.color; +idtype = type_nullable_parser_nodes__TStar.id; +if(var_tstarnode2 == NULL) { +var2 = 1; } else { -if(cltype13 >= var_pclassdefnode7->type->table_size) { -var12 = 0; +if(cltype >= var_tstarnode2->type->table_size) { +var2 = 0; } else { -var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14; +var2 = var_tstarnode2->type->type_table[cltype] == idtype; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3182); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4391); show_backtrace(1); } -var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on */; -var_listnode8 = var15; -var16 = NULL; -if (var_pclassdefnode7 == NULL) { -var17 = 0; /* is null */ -} else { -var17 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__AStarMethid(&type_parser_nodes__AStarMethid); +{ +parser_prod__AStarMethid__init_astarmethid(var3, var_tstarnode2); /* Direct call parser_prod#AStarMethid#init_astarmethid on */ } -if (var17){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var19 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var18; -var_node_list = var_pmodulenode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction44#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction44__action(val* self, val* p0) { -parser__ReduceAction44__action(self, p0); +/* method parser#ReduceAction105#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction105__action(val* self, val* p0) { +parser__ReduceAction105__action(self, p0); /* Direct call parser#ReduceAction105#action on */ RET_LABEL:; } -/* method parser#ReduceAction45#action for (self: ReduceAction45, Parser) */ -void parser__ReduceAction45__action(val* self, val* p0) { +/* method parser#ReduceAction106#action for (self: ReduceAction106, Parser) */ +void parser__ReduceAction106__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* var5 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; -int cltype; -int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : Array[Object] */; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tslashnode2 /* var tslashnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : ASlashMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ASlashMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode8 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tslashnode2 = var_nodearraylist1; +/* isa nullable TSlash */ +cltype = type_nullable_parser_nodes__TSlash.color; +idtype = type_nullable_parser_nodes__TSlash.id; +if(var_tslashnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tslashnode2->type->table_size) { +var2 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tslashnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3210); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4406); show_backtrace(1); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode4->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode4->type->type_table[cltype10] == idtype11; +var3 = NEW_parser_nodes__ASlashMethid(&type_parser_nodes__ASlashMethid); +{ +parser_prod__ASlashMethid__init_aslashmethid(var3, var_tslashnode2); /* Direct call parser_prod#ASlashMethid#init_aslashmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3212); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var12; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var13 = 0; -} else { -if(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +RET_LABEL:; } +/* method parser#ReduceAction106#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction106__action(val* self, val* p0) { +parser__ReduceAction106__action(self, p0); /* Direct call parser#ReduceAction106#action on */ +RET_LABEL:; } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3215); -show_backtrace(1); +/* method parser#ReduceAction107#action for (self: ReduceAction107, Parser) */ +void parser__ReduceAction107__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tpercentnode2 /* var tpercentnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : APercentMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable APercentMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var_pclassdefnode7 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype17 = type_nullable_parser_nodes__AClassdef.color; -idtype18 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode7 == NULL) { -var16 = 1; +var_nodearraylist1 = var1; +var_tpercentnode2 = var_nodearraylist1; +/* isa nullable TPercent */ +cltype = type_nullable_parser_nodes__TPercent.color; +idtype = type_nullable_parser_nodes__TPercent.id; +if(var_tpercentnode2 == NULL) { +var2 = 1; } else { -if(cltype17 >= var_pclassdefnode7->type->table_size) { -var16 = 0; +if(cltype >= var_tpercentnode2->type->table_size) { +var2 = 0; } else { -var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18; +var2 = var_tpercentnode2->type->type_table[cltype] == idtype; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3217); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4421); show_backtrace(1); } -var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on */; -var_listnode8 = var19; -var20 = NULL; -if (var_pclassdefnode7 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__APercentMethid(&type_parser_nodes__APercentMethid); +{ +parser_prod__APercentMethid__init_apercentmethid(var3, var_tpercentnode2); /* Direct call parser_prod#APercentMethid#init_apercentmethid on */ } -if (var21){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction45#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction45__action(val* self, val* p0) { -parser__ReduceAction45__action(self, p0); +/* method parser#ReduceAction107#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction107__action(val* self, val* p0) { +parser__ReduceAction107__action(self, p0); /* Direct call parser#ReduceAction107#action on */ RET_LABEL:; } -/* method parser#ReduceAction46#action for (self: ReduceAction46, Parser) */ -void parser__ReduceAction46__action(val* self, val* p0) { +/* method parser#ReduceAction108#action for (self: ReduceAction108, Parser) */ +void parser__ReduceAction108__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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; +val* var_teqnode2 /* var teqnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : Array[Object] */; -val* var21 /* : null */; -short int var22 /* : Bool */; -val* var23 /* : AModule */; -val* var24 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var25 /* : Int */; -long var26 /* : Int */; +val* var3 /* : AEqMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AEqMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode9 = var7; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_teqnode2 = var_nodearraylist1; +/* isa nullable TEq */ +cltype = type_nullable_parser_nodes__TEq.color; +idtype = type_nullable_parser_nodes__TEq.id; +if(var_teqnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype >= var_teqnode2->type->table_size) { +var2 = 0; } else { -var8 = var_listnode3->type->type_table[cltype] == idtype; +var2 = var_teqnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3245); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4436); show_backtrace(1); } -var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var9; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var10 = 0; -} else { -if(cltype11 >= var_listnode5->type->table_size) { -var10 = 0; -} else { -var10 = var_listnode5->type->type_table[cltype11] == idtype12; +var3 = NEW_parser_nodes__AEqMethid(&type_parser_nodes__AEqMethid); +{ +parser_prod__AEqMethid__init_aeqmethid(var3, var_teqnode2); /* Direct call parser_prod#AEqMethid#init_aeqmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3248); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var13; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var14 = 0; -} else { -if(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +RET_LABEL:; } +/* method parser#ReduceAction108#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction108__action(val* self, val* p0) { +parser__ReduceAction108__action(self, p0); /* Direct call parser#ReduceAction108#action on */ +RET_LABEL:; } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3251); -show_backtrace(1); +/* method parser#ReduceAction109#action for (self: ReduceAction109, Parser) */ +void parser__ReduceAction109__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tnenode2 /* var tnenode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : ANeMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ANeMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var_pclassdefnode8 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype18 = type_nullable_parser_nodes__AClassdef.color; -idtype19 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode8 == NULL) { -var17 = 1; +var_nodearraylist1 = var1; +var_tnenode2 = var_nodearraylist1; +/* isa nullable TNe */ +cltype = type_nullable_parser_nodes__TNe.color; +idtype = type_nullable_parser_nodes__TNe.id; +if(var_tnenode2 == NULL) { +var2 = 1; } else { -if(cltype18 >= var_pclassdefnode8->type->table_size) { -var17 = 0; +if(cltype >= var_tnenode2->type->table_size) { +var2 = 0; } else { -var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19; +var2 = var_tnenode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3253); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4451); show_backtrace(1); } -var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on */; -var_listnode9 = var20; -var21 = NULL; -if (var_pclassdefnode8 == NULL) { -var22 = 0; /* is null */ -} else { -var22 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__ANeMethid(&type_parser_nodes__ANeMethid); +{ +parser_prod__ANeMethid__init_anemethid(var3, var_tnenode2); /* Direct call parser_prod#ANeMethid#init_anemethid on */ } -if (var22){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var23 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var24 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var23, var24, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var23; -var_node_list = var_pmodulenode1; -var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction46#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction46__action(val* self, val* p0) { -parser__ReduceAction46__action(self, p0); +/* method parser#ReduceAction109#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction109__action(val* self, val* p0) { +parser__ReduceAction109__action(self, p0); /* Direct call parser#ReduceAction109#action on */ RET_LABEL:; } -/* method parser#ReduceAction47#action for (self: ReduceAction47, Parser) */ -void parser__ReduceAction47__action(val* self, val* p0) { +/* method parser#ReduceAction110#action for (self: ReduceAction110, Parser) */ +void parser__ReduceAction110__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* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var9 /* : Bool */; +val* var_tlenode2 /* var tlenode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var24 /* : Array[Object] */; -val* var25 /* : null */; -short int var26 /* : Bool */; -val* var27 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var28 /* : Int */; -long var29 /* : Int */; +val* var3 /* : ALeMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ALeMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode9 = var8; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var9 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var9 = 0; -} else { -var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3282); -show_backtrace(1); -} -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var10 = 0; +var_nodearraylist1 = var1; +var_tlenode2 = var_nodearraylist1; +/* isa nullable TLe */ +cltype = type_nullable_parser_nodes__TLe.color; +idtype = type_nullable_parser_nodes__TLe.id; +if(var_tlenode2 == NULL) { +var2 = 1; } else { -if(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; +if(cltype >= var_tlenode2->type->table_size) { +var2 = 0; } else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var2 = var_tlenode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3284); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4466); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var13; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var14 = 0; -} else { -if(cltype15 >= var_listnode5->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode5->type->type_table[cltype15] == idtype16; +var3 = NEW_parser_nodes__ALeMethid(&type_parser_nodes__ALeMethid); +{ +parser_prod__ALeMethid__init_alemethid(var3, var_tlenode2); /* Direct call parser_prod#ALeMethid#init_alemethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3287); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var17; -var_listnode7 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var18 = 0; -} else { -if(cltype19 >= var_listnode7->type->table_size) { -var18 = 0; -} else { -var18 = var_listnode7->type->type_table[cltype19] == idtype20; +RET_LABEL:; } +/* method parser#ReduceAction110#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction110__action(val* self, val* p0) { +parser__ReduceAction110__action(self, p0); /* Direct call parser#ReduceAction110#action on */ +RET_LABEL:; } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3290); -show_backtrace(1); +/* method parser#ReduceAction111#action for (self: ReduceAction111, Parser) */ +void parser__ReduceAction111__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tgenode2 /* var tgenode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AGeMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AGeMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var_pclassdefnode8 = var_nodearraylist5; -/* isa nullable AClassdef */ -cltype22 = type_nullable_parser_nodes__AClassdef.color; -idtype23 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode8 == NULL) { -var21 = 1; +var_nodearraylist1 = var1; +var_tgenode2 = var_nodearraylist1; +/* isa nullable TGe */ +cltype = type_nullable_parser_nodes__TGe.color; +idtype = type_nullable_parser_nodes__TGe.id; +if(var_tgenode2 == NULL) { +var2 = 1; } else { -if(cltype22 >= var_pclassdefnode8->type->table_size) { -var21 = 0; +if(cltype >= var_tgenode2->type->table_size) { +var2 = 0; } else { -var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23; +var2 = var_tgenode2->type->type_table[cltype] == idtype; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3292); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4481); show_backtrace(1); } -var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on */; -var_listnode9 = var24; -var25 = NULL; -if (var_pclassdefnode8 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__AGeMethid(&type_parser_nodes__AGeMethid); +{ +parser_prod__AGeMethid__init_agemethid(var3, var_tgenode2); /* Direct call parser_prod#AGeMethid#init_agemethid on */ } -if (var26){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var27; -var_node_list = var_pmodulenode1; -var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction47#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction47__action(val* self, val* p0) { -parser__ReduceAction47__action(self, p0); +/* method parser#ReduceAction111#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction111__action(val* self, val* p0) { +parser__ReduceAction111__action(self, p0); /* Direct call parser#ReduceAction111#action on */ RET_LABEL:; } -/* method parser#ReduceAction48#action for (self: ReduceAction48, Parser) */ -void parser__ReduceAction48__action(val* self, val* p0) { +/* method parser#ReduceAction112#action for (self: ReduceAction112, Parser) */ +void parser__ReduceAction112__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var7 /* : Bool */; +val* var_tltnode2 /* var tltnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var9 /* : ATopClassdef */; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : null */; -short int var14 /* : Bool */; -val* var15 /* : null */; -short int var16 /* : Bool */; -val* var17 /* : AModule */; -val* var18 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var19 /* : Int */; -long var20 /* : Int */; +val* var3 /* : ALtMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ALtMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode9 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode7 = var6; -var_listnode6 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var7 = 0; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tltnode2 = var_nodearraylist1; +/* isa nullable TLt */ +cltype = type_nullable_parser_nodes__TLt.color; +idtype = type_nullable_parser_nodes__TLt.id; +if(var_tltnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_listnode6->type->table_size) { -var7 = 0; +if(cltype >= var_tltnode2->type->table_size) { +var2 = 0; } else { -var7 = var_listnode6->type->type_table[cltype] == idtype; +var2 = var_tltnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3319); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4496); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var8; -var9 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var9->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var9, var_listnode7) /* init_atopclassdef on */; -var_pclassdefnode5 = var9; -var_pclassdefnode8 = var_nodearraylist2; -/* isa nullable AClassdef */ -cltype11 = type_nullable_parser_nodes__AClassdef.color; -idtype12 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode8 == NULL) { -var10 = 1; -} else { -if(cltype11 >= var_pclassdefnode8->type->table_size) { -var10 = 0; -} else { -var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12; +var3 = NEW_parser_nodes__ALtMethid(&type_parser_nodes__ALtMethid); +{ +parser_prod__ALtMethid__init_altmethid(var3, var_tltnode2); /* Direct call parser_prod#ALtMethid#init_altmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3325); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var13 = NULL; -if (var_pclassdefnode5 == NULL) { -var14 = 0; /* is null */ +RET_LABEL:; +} +/* method parser#ReduceAction112#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction112__action(val* self, val* p0) { +parser__ReduceAction112__action(self, p0); /* Direct call parser#ReduceAction112#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction113#action for (self: ReduceAction113, Parser) */ +void parser__ReduceAction113__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tgtnode2 /* var tgtnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AGtMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AGtMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tgtnode2 = var_nodearraylist1; +/* isa nullable TGt */ +cltype = type_nullable_parser_nodes__TGt.color; +idtype = type_nullable_parser_nodes__TGt.id; +if(var_tgtnode2 == NULL) { +var2 = 1; +} else { +if(cltype >= var_tgtnode2->type->table_size) { +var2 = 0; } else { -var14 = 1; /* arg is null and recv is not */ +var2 = var_tgtnode2->type->type_table[cltype] == idtype; } -if (var14){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on */; -} else { } -var15 = NULL; -if (var_pclassdefnode8 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 1; /* arg is null and recv is not */ +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4511); +show_backtrace(1); } -if (var16){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +var3 = NEW_parser_nodes__AGtMethid(&type_parser_nodes__AGtMethid); +{ +parser_prod__AGtMethid__init_agtmethid(var3, var_tgtnode2); /* Direct call parser_prod#AGtMethid#init_agtmethid on */ +} +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var18 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var17; -var_node_list = var_pmodulenode1; -var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction48#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction48__action(val* self, val* p0) { -parser__ReduceAction48__action(self, p0); +/* method parser#ReduceAction113#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction113__action(val* self, val* p0) { +parser__ReduceAction113__action(self, p0); /* Direct call parser#ReduceAction113#action on */ RET_LABEL:; } -/* method parser#ReduceAction49#action for (self: ReduceAction49, Parser) */ -void parser__ReduceAction49__action(val* self, val* p0) { +/* method parser#ReduceAction114#action for (self: ReduceAction114, Parser) */ +void parser__ReduceAction114__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_tllnode2 /* var tllnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : ATopClassdef */; -val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : null */; -short int var18 /* : Bool */; -val* var19 /* : null */; -short int var20 /* : Bool */; -val* var21 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var22 /* : Int */; -long var23 /* : Int */; +val* var3 /* : ALlMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ALlMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode9 = var6; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tllnode2 = var_nodearraylist1; +/* isa nullable TLl */ +cltype = type_nullable_parser_nodes__TLl.color; +idtype = type_nullable_parser_nodes__TLl.id; +if(var_tllnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_tllnode2->type->table_size) { +var2 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tllnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3354); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4526); show_backtrace(1); } -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode7 = var8; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var3 = NEW_parser_nodes__ALlMethid(&type_parser_nodes__ALlMethid); +{ +parser_prod__ALlMethid__init_allmethid(var3, var_tllnode2); /* Direct call parser_prod#ALlMethid#init_allmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3357); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on */; -var_listnode7 = var12; -var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode7) /* init_atopclassdef on */; -var_pclassdefnode5 = var13; -var_pclassdefnode8 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype15 = type_nullable_parser_nodes__AClassdef.color; -idtype16 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode8 == NULL) { -var14 = 1; +RET_LABEL:; +} +/* method parser#ReduceAction114#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction114__action(val* self, val* p0) { +parser__ReduceAction114__action(self, p0); /* Direct call parser#ReduceAction114#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction115#action for (self: ReduceAction115, Parser) */ +void parser__ReduceAction115__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tggnode2 /* var tggnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AGgMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AGgMethid */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tggnode2 = var_nodearraylist1; +/* isa nullable TGg */ +cltype = type_nullable_parser_nodes__TGg.color; +idtype = type_nullable_parser_nodes__TGg.id; +if(var_tggnode2 == NULL) { +var2 = 1; } else { -if(cltype15 >= var_pclassdefnode8->type->table_size) { -var14 = 0; +if(cltype >= var_tggnode2->type->table_size) { +var2 = 0; } else { -var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16; +var2 = var_tggnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3363); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4541); show_backtrace(1); } -var17 = NULL; -if (var_pclassdefnode5 == NULL) { -var18 = 0; /* is null */ -} else { -var18 = 1; /* arg is null and recv is not */ -} -if (var18){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on */; -} else { +var3 = NEW_parser_nodes__AGgMethid(&type_parser_nodes__AGgMethid); +{ +parser_prod__AGgMethid__init_aggmethid(var3, var_tggnode2); /* Direct call parser_prod#AGgMethid#init_aggmethid on */ } -var19 = NULL; -if (var_pclassdefnode8 == NULL) { -var20 = 0; /* is null */ -} else { -var20 = 1; /* arg is null and recv is not */ +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (var20){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on */; -var_pmodulenode1 = var21; -var_node_list = var_pmodulenode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction49#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction49__action(val* self, val* p0) { -parser__ReduceAction49__action(self, p0); +/* method parser#ReduceAction115#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction115__action(val* self, val* p0) { +parser__ReduceAction115__action(self, p0); /* Direct call parser#ReduceAction115#action on */ RET_LABEL:; } -/* method parser#ReduceAction50#action for (self: ReduceAction50, Parser) */ -void parser__ReduceAction50__action(val* self, val* p0) { +/* method parser#ReduceAction116#action for (self: ReduceAction116, Parser) */ +void parser__ReduceAction116__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_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_tobranode2 /* var tobranode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var9 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var14 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var23 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var24 /* : Int */; -long var25 /* : Int */; +val* var_tcbranode3 /* var tcbranode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : ABraMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ABraMethid */; +long var8 /* : Int */; +long var9 /* : 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_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; -} else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; -} else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3392); -show_backtrace(1); -} -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var8; -var9 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -var_listnode8 = var9; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var10 = 0; +var_nodearraylist1 = var2; +var_tobranode2 = var_nodearraylist1; +/* isa nullable TObra */ +cltype = type_nullable_parser_nodes__TObra.color; +idtype = type_nullable_parser_nodes__TObra.id; +if(var_tobranode2 == NULL) { +var3 = 1; } else { -if(cltype11 >= var_listnode7->type->table_size) { -var10 = 0; +if(cltype >= var_tobranode2->type->table_size) { +var3 = 0; } else { -var10 = var_listnode7->type->type_table[cltype11] == idtype12; +var3 = var_tobranode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3396); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4557); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var13; -var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var14; -var_pclassdefnode9 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype16 = type_nullable_parser_nodes__AClassdef.color; -idtype17 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var15 = 1; +var_tcbranode3 = var_nodearraylist2; +/* isa nullable TCbra */ +cltype5 = type_nullable_parser_nodes__TCbra.color; +idtype6 = type_nullable_parser_nodes__TCbra.id; +if(var_tcbranode3 == NULL) { +var4 = 1; } else { -if(cltype16 >= var_pclassdefnode9->type->table_size) { -var15 = 0; +if(cltype5 >= var_tcbranode3->type->table_size) { +var4 = 0; } else { -var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17; +var4 = var_tcbranode3->type->type_table[cltype5] == idtype6; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3402); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4559); show_backtrace(1); } -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ -} -if (var19){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +var7 = NEW_parser_nodes__ABraMethid(&type_parser_nodes__ABraMethid); +{ +parser_prod__ABraMethid__init_abramethid(var7, var_tobranode2, var_tcbranode3); /* Direct call parser_prod#ABraMethid#init_abramethid on */ } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +var_pmethidnode1 = var7; +var_node_list = var_pmethidnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); } -if (var21){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var23 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction50#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction50__action(val* self, val* p0) { -parser__ReduceAction50__action(self, p0); +/* method parser#ReduceAction116#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction116__action(val* self, val* p0) { +parser__ReduceAction116__action(self, p0); /* Direct call parser#ReduceAction116#action on */ RET_LABEL:; } -/* method parser#ReduceAction51#action for (self: ReduceAction51, Parser) */ -void parser__ReduceAction51__action(val* self, val* p0) { +/* method parser#ReduceAction117#action for (self: ReduceAction117, Parser) */ +void parser__ReduceAction117__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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tstarshipnode2 /* var tstarshipnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : null */; -short int var23 /* : Bool */; -val* var24 /* : null */; -short int var25 /* : Bool */; -val* var26 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var27 /* : Int */; -long var28 /* : Int */; +val* var3 /* : AStarshipMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AStarshipMethid */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tstarshipnode2 = var_nodearraylist1; +/* isa nullable TStarship */ +cltype = type_nullable_parser_nodes__TStarship.color; +idtype = type_nullable_parser_nodes__TStarship.id; +if(var_tstarshipnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tstarshipnode2->type->table_size) { +var2 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tstarshipnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3432); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4575); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var3 = NEW_parser_nodes__AStarshipMethid(&type_parser_nodes__AStarshipMethid); +{ +parser_prod__AStarshipMethid__init_astarshipmethid(var3, var_tstarshipnode2); /* Direct call parser_prod#AStarshipMethid#init_astarshipmethid on */ } +var_pmethidnode1 = var3; +var_node_list = var_pmethidnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3434); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var12; -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -var_listnode8 = var13; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var14 = 0; +RET_LABEL:; +} +/* method parser#ReduceAction117#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction117__action(val* self, val* p0) { +parser__ReduceAction117__action(self, p0); /* Direct call parser#ReduceAction117#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction118#action for (self: ReduceAction118, Parser) */ +void parser__ReduceAction118__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_tassignnode3 /* var tassignnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AAssignMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AAssignMethid */; +long var8 /* : Int */; +long var9 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var3 = 1; } else { -if(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3438); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4591); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var17; -var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var18; -var_pclassdefnode9 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype20 = type_nullable_parser_nodes__AClassdef.color; -idtype21 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var19 = 1; +var_tassignnode3 = var_nodearraylist2; +/* isa nullable TAssign */ +cltype5 = type_nullable_parser_nodes__TAssign.color; +idtype6 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode3 == NULL) { +var4 = 1; } else { -if(cltype20 >= var_pclassdefnode9->type->table_size) { -var19 = 0; +if(cltype5 >= var_tassignnode3->type->table_size) { +var4 = 0; } else { -var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21; +var4 = var_tassignnode3->type->type_table[cltype5] == idtype6; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3444); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4593); show_backtrace(1); } -var22 = NULL; -if (var_pclassdefnode6 == NULL) { -var23 = 0; /* is null */ -} else { -var23 = 1; /* arg is null and recv is not */ -} -if (var23){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +var7 = NEW_parser_nodes__AAssignMethid(&type_parser_nodes__AAssignMethid); +{ +parser_prod__AAssignMethid__init_aassignmethid(var7, var_tidnode2, var_tassignnode3); /* Direct call parser_prod#AAssignMethid#init_aassignmethid on */ } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 1; /* arg is null and recv is not */ +var_pmethidnode1 = var7; +var_node_list = var_pmethidnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); } -if (var25){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } -var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var26; -var_node_list = var_pmodulenode1; -var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction51#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction51__action(val* self, val* p0) { -parser__ReduceAction51__action(self, p0); +/* method parser#ReduceAction118#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction118__action(val* self, val* p0) { +parser__ReduceAction118__action(self, p0); /* Direct call parser#ReduceAction118#action on */ RET_LABEL:; } -/* method parser#ReduceAction52#action for (self: ReduceAction52, Parser) */ -void parser__ReduceAction52__action(val* self, val* p0) { +/* method parser#ReduceAction119#action for (self: ReduceAction119, Parser) */ +void parser__ReduceAction119__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -6614,747 +7201,616 @@ val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var7 /* : Bool */; +val* var_tobranode2 /* var tobranode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var9 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var14 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var23 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var24 /* : Int */; -long var25 /* : Int */; +val* var_tcbranode3 /* var tcbranode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : ABraassignMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable ABraassignMethid */; +long var12 /* : Int */; +long var13 /* : 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var7 = 0; +var_tobranode2 = var_nodearraylist1; +/* isa nullable TObra */ +cltype = type_nullable_parser_nodes__TObra.color; +idtype = type_nullable_parser_nodes__TObra.id; +if(var_tobranode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype >= var_tobranode2->type->table_size) { +var4 = 0; } else { -var7 = var_listnode4->type->type_table[cltype] == idtype; +var4 = var_tobranode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3473); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4611); show_backtrace(1); } -var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var8; -var9 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -var_listnode8 = var9; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var10 = 0; +var_tcbranode3 = var_nodearraylist2; +/* isa nullable TCbra */ +cltype6 = type_nullable_parser_nodes__TCbra.color; +idtype7 = type_nullable_parser_nodes__TCbra.id; +if(var_tcbranode3 == NULL) { +var5 = 1; } else { -if(cltype11 >= var_listnode7->type->table_size) { -var10 = 0; +if(cltype6 >= var_tcbranode3->type->table_size) { +var5 = 0; } else { -var10 = var_listnode7->type->type_table[cltype11] == idtype12; +var5 = var_tcbranode3->type->type_table[cltype6] == idtype7; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3477); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4613); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var13; -var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var14; -var_pclassdefnode9 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype16 = type_nullable_parser_nodes__AClassdef.color; -idtype17 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var15 = 1; +var_tassignnode4 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype9 = type_nullable_parser_nodes__TAssign.color; +idtype10 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { +var8 = 1; } else { -if(cltype16 >= var_pclassdefnode9->type->table_size) { -var15 = 0; +if(cltype9 >= var_tassignnode4->type->table_size) { +var8 = 0; } else { -var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17; +var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3483); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4615); show_backtrace(1); } -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ -} -if (var19){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +var11 = NEW_parser_nodes__ABraassignMethid(&type_parser_nodes__ABraassignMethid); +{ +parser_prod__ABraassignMethid__init_abraassignmethid(var11, var_tobranode2, var_tcbranode3, var_tassignnode4); /* Direct call parser_prod#ABraassignMethid#init_abraassignmethid on */ } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +var_pmethidnode1 = var11; +var_node_list = var_pmethidnode1; +var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var13 = parser_work__Parser__go_to(var_p, var12); } -if (var21){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var23 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction52#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction52__action(val* self, val* p0) { -parser__ReduceAction52__action(self, p0); +/* method parser#ReduceAction119#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction119__action(val* self, val* p0) { +parser__ReduceAction119__action(self, p0); /* Direct call parser#ReduceAction119#action on */ RET_LABEL:; } -/* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */ -void parser__ReduceAction53__action(val* self, val* p0) { +/* method parser#ReduceAction120#action for (self: ReduceAction120, Parser) */ +void parser__ReduceAction120__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* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_toparnode2 /* var toparnode2: nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; +val* var_listnode3 /* var listnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; val* var12 /* : Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : null */; -short int var23 /* : Bool */; -val* var24 /* : null */; -short int var25 /* : Bool */; -val* var26 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var27 /* : Int */; -long var28 /* : Int */; +val* var_tcparnode5 /* var tcparnode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_ptypenode6 /* var ptypenode6: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : ASignature */; +val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */; +long var20 /* : Int */; +long var21 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var6; var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { +{ +array__Array__init(var7); /* Direct call array#Array#init on */ +} +var_listnode4 = var7; +var_toparnode2 = var_nodearraylist1; +/* isa nullable TOpar */ +cltype = type_nullable_parser_nodes__TOpar.color; +idtype = type_nullable_parser_nodes__TOpar.id; +if(var_toparnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { +if(cltype >= var_toparnode2->type->table_size) { var8 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var8 = var_toparnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3513); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4638); show_backtrace(1); } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ cltype10 = type_array__Arraykernel__Object.color; idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { +if(var_listnode3 == NULL) { var9 = 0; } else { -if(cltype10 >= var_listnode4->type->table_size) { +if(cltype10 >= var_listnode3->type->table_size) { var9 = 0; } else { -var9 = var_listnode4->type->type_table[cltype10] == idtype11; +var9 = var_listnode3->type->type_table[cltype10] == idtype11; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3515); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4640); show_backtrace(1); } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var12; -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -var_listnode8 = var13; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var14 = 0; +{ +var12 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var12; +var_tcparnode5 = var_nodearraylist4; +/* isa nullable TCpar */ +cltype14 = type_nullable_parser_nodes__TCpar.color; +idtype15 = type_nullable_parser_nodes__TCpar.id; +if(var_tcparnode5 == NULL) { +var13 = 1; } else { -if(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; +if(cltype14 >= var_tcparnode5->type->table_size) { +var13 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +var13 = var_tcparnode5->type->type_table[cltype14] == idtype15; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3519); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4643); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var17; -var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var18; -var_pclassdefnode9 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype20 = type_nullable_parser_nodes__AClassdef.color; -idtype21 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var19 = 1; +var_ptypenode6 = var_nodearraylist5; +/* isa nullable AType */ +cltype17 = type_nullable_parser_nodes__AType.color; +idtype18 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode6 == NULL) { +var16 = 1; } else { -if(cltype20 >= var_pclassdefnode9->type->table_size) { -var19 = 0; +if(cltype17 >= var_ptypenode6->type->table_size) { +var16 = 0; } else { -var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21; +var16 = var_ptypenode6->type->type_table[cltype17] == idtype18; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3525); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4645); show_backtrace(1); } -var22 = NULL; -if (var_pclassdefnode6 == NULL) { -var23 = 0; /* is null */ -} else { -var23 = 1; /* arg is null and recv is not */ -} -if (var23){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +var19 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature); +{ +parser_prod__ASignature__init_asignature(var19, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6); /* Direct call parser_prod#ASignature#init_asignature on */ } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 1; /* arg is null and recv is not */ +var_psignaturenode1 = var19; +var_node_list = var_psignaturenode1; +var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var21 = parser_work__Parser__go_to(var_p, var20); } -if (var25){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } -var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var26; -var_node_list = var_pmodulenode1; -var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction53#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction53__action(val* self, val* p0) { -parser__ReduceAction53__action(self, p0); +/* method parser#ReduceAction120#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction120__action(val* self, val* p0) { +parser__ReduceAction120__action(self, p0); /* Direct call parser#ReduceAction120#action on */ RET_LABEL:; } -/* method parser#ReduceAction54#action for (self: ReduceAction54, Parser) */ -void parser__ReduceAction54__action(val* self, val* p0) { +/* method parser#ReduceAction121#action for (self: ReduceAction121, Parser) */ +void parser__ReduceAction121__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* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; val* var6 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_toparnode2 /* var toparnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : Array[Object] */; -val* var19 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var23 /* : null */; -short int var24 /* : Bool */; -val* var25 /* : null */; -short int var26 /* : Bool */; -val* var27 /* : AModule */; -val* var28 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var29 /* : Int */; -long var30 /* : Int */; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : Array[Object] */; +val* var_tcparnode5 /* var tcparnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ASignature */; +val* var16 /* : null */; +val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */; +long var17 /* : Int */; +long var18 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode11 = var7; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; -} else { -if(cltype >= var_listnode3->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode3->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3555); -show_backtrace(1); +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var9; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var10 = 0; +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var6 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var6); /* Direct call array#Array#init on */ +} +var_listnode4 = var6; +var_toparnode2 = var_nodearraylist1; +/* isa nullable TOpar */ +cltype = type_nullable_parser_nodes__TOpar.color; +idtype = type_nullable_parser_nodes__TOpar.id; +if(var_toparnode2 == NULL) { +var7 = 1; } else { -if(cltype11 >= var_listnode5->type->table_size) { -var10 = 0; +if(cltype >= var_toparnode2->type->table_size) { +var7 = 0; } else { -var10 = var_listnode5->type->type_table[cltype11] == idtype12; +var7 = var_toparnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3558); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4668); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var13; -var14 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on */; -var_listnode9 = var14; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype16 = type_array__Arraykernel__Object.color; -idtype17 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var15 = 0; +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ +cltype9 = type_array__Arraykernel__Object.color; +idtype10 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var8 = 0; } else { -if(cltype16 >= var_listnode8->type->table_size) { -var15 = 0; +if(cltype9 >= var_listnode3->type->table_size) { +var8 = 0; } else { -var15 = var_listnode8->type->type_table[cltype16] == idtype17; +var8 = var_listnode3->type->type_table[cltype9] == idtype10; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3562); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4670); show_backtrace(1); } -var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var18; -var19 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var19->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var19, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var19; -var_pclassdefnode10 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype21 = type_nullable_parser_nodes__AClassdef.color; -idtype22 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var20 = 1; +{ +var11 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var11; +var_tcparnode5 = var_nodearraylist4; +/* isa nullable TCpar */ +cltype13 = type_nullable_parser_nodes__TCpar.color; +idtype14 = type_nullable_parser_nodes__TCpar.id; +if(var_tcparnode5 == NULL) { +var12 = 1; } else { -if(cltype21 >= var_pclassdefnode10->type->table_size) { -var20 = 0; +if(cltype13 >= var_tcparnode5->type->table_size) { +var12 = 0; } else { -var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22; +var12 = var_tcparnode5->type->type_table[cltype13] == idtype14; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3568); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4673); show_backtrace(1); } -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +var15 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature); +var16 = NULL; +{ +parser_prod__ASignature__init_asignature(var15, var_toparnode2, var_listnode4, var_tcparnode5, var16); /* Direct call parser_prod#ASignature#init_asignature on */ } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ +var_psignaturenode1 = var15; +var_node_list = var_psignaturenode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var28 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var27; -var_node_list = var_pmodulenode1; -var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction54#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction54__action(val* self, val* p0) { -parser__ReduceAction54__action(self, p0); +/* method parser#ReduceAction121#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction121__action(val* self, val* p0) { +parser__ReduceAction121__action(self, p0); /* Direct call parser#ReduceAction121#action on */ RET_LABEL:; } -/* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */ -void parser__ReduceAction55__action(val* self, val* p0) { +/* method parser#ReduceAction122#action for (self: ReduceAction122, Parser) */ +void parser__ReduceAction122__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* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var9 /* : Bool */; +val* var3 /* : Array[Object] */; +val* var_listnode3 /* var listnode3: Array[Object] */; +val* var_ptypenode5 /* var ptypenode5: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : Array[Object] */; -val* var23 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : null */; -short int var28 /* : Bool */; -val* var29 /* : null */; -short int var30 /* : Bool */; -val* var31 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var32 /* : Int */; -long var33 /* : Int */; +val* var5 /* : ASignature */; +val* var6 /* : null */; +val* var7 /* : null */; +val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */; +long var8 /* : Int */; +long var9 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode11 = var8; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var9 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var3); /* Direct call array#Array#init on */ +} +var_listnode3 = var3; +var_ptypenode5 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode5 == NULL) { +var4 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var9 = 0; +if(cltype >= var_ptypenode5->type->table_size) { +var4 = 0; } else { -var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var4 = var_ptypenode5->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3599); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4693); show_backtrace(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var10 = 0; -} else { -if(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; -} else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var5 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature); +var6 = NULL; +var7 = NULL; +{ +parser_prod__ASignature__init_asignature(var5, var6, var_listnode3, var7, var_ptypenode5); /* Direct call parser_prod#ASignature#init_asignature on */ +} +var_psignaturenode1 = var5; +var_node_list = var_psignaturenode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); +} +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction122#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction122__action(val* self, val* p0) { +parser__ReduceAction122__action(self, p0); /* Direct call parser#ReduceAction122#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction123#action for (self: ReduceAction123, Parser) */ +void parser__ReduceAction123__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var2 /* : Array[Object] */; +val* var_listnode3 /* var listnode3: Array[Object] */; +val* var3 /* : ASignature */; +val* var4 /* : null */; +val* var5 /* : null */; +val* var6 /* : null */; +val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */; +long var7 /* : Int */; +long var8 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var2 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var2); /* Direct call array#Array#init on */ } +var_listnode3 = var2; +var3 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature); +var4 = NULL; +var5 = NULL; +var6 = NULL; +{ +parser_prod__ASignature__init_asignature(var3, var4, var_listnode3, var5, var6); /* Direct call parser_prod#ASignature#init_asignature on */ } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3601); -show_backtrace(1); +var_psignaturenode1 = var3; +var_node_list = var_psignaturenode1; +var7 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var8 = parser_work__Parser__go_to(var_p, var7); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var13; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var14 = 0; -} else { -if(cltype15 >= var_listnode5->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode5->type->type_table[cltype15] == idtype16; +{ +parser_work__Parser__push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3604); -show_backtrace(1); +/* method parser#ReduceAction123#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction123__action(val* self, val* p0) { +parser__ReduceAction123__action(self, p0); /* Direct call parser#ReduceAction123#action on */ +RET_LABEL:; } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var17; -var18 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on */; -var_listnode9 = var18; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype20 = type_array__Arraykernel__Object.color; -idtype21 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var19 = 0; -} else { -if(cltype20 >= var_listnode8->type->table_size) { -var19 = 0; -} else { -var19 = var_listnode8->type->type_table[cltype20] == idtype21; +/* method parser#ReduceAction124#action for (self: ReduceAction124, Parser) */ +void parser__ReduceAction124__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var3 /* : Array[Object] */; +val* var_listnode2 /* var listnode2: Array[Object] */; +val* var_pparamnode1 /* var pparamnode1: nullable Object */; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +long var7 /* : Int */; +long var8 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3608); -show_backtrace(1); +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var3); /* Direct call array#Array#init on */ } -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var22; -var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var23; -var_pclassdefnode10 = var_nodearraylist5; -/* isa nullable AClassdef */ -cltype25 = type_nullable_parser_nodes__AClassdef.color; -idtype26 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var24 = 1; -} else { -if(cltype25 >= var_pclassdefnode10->type->table_size) { -var24 = 0; +var_listnode2 = var3; +var_pparamnode1 = var_nodearraylist1; +var4 = NULL; +if (var_pparamnode1 == NULL) { +var5 = 0; /* is null */ } else { -var24 = var_pclassdefnode10->type->type_table[cltype25] == idtype26; -} +var5 = 1; /* arg is null and recv is not */ } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3614); -show_backtrace(1); +if (0) { +var6 = ((short int (*)(val*, val*))(var_pparamnode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_pparamnode1, var4) /* != on */; +var5 = var6; } -var27 = NULL; -if (var_pclassdefnode7 == NULL) { -var28 = 0; /* is null */ -} else { -var28 = 1; /* arg is null and recv is not */ +if (var5){ +{ +array__Array__add(var_listnode2, var_pparamnode1); /* Direct call array#Array#add on */ } -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; } else { } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ -} else { -var30 = 1; /* arg is null and recv is not */ +var_node_list = var_listnode2; +var7 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var8 = parser_work__Parser__go_to(var_p, var7); } -if (var30){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on */ } -var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var31; -var_node_list = var_pmodulenode1; -var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction55#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction55__action(val* self, val* p0) { -parser__ReduceAction55__action(self, p0); +/* method parser#ReduceAction124#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction124__action(val* self, val* p0) { +parser__ReduceAction124__action(self, p0); /* Direct call parser#ReduceAction124#action on */ RET_LABEL:; } -/* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */ -void parser__ReduceAction56__action(val* self, val* p0) { +/* method parser#ReduceAction125#action for (self: ReduceAction125, Parser) */ +void parser__ReduceAction125__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -7366,745 +7822,558 @@ val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var4 /* : Array[Object] */; val* var_listnode3 /* var listnode3: Array[Object] */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var7 /* : Bool */; +val* var_pparamnode1 /* var pparamnode1: nullable Object */; +val* var_listnode2 /* var listnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var13 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : null */; -short int var21 /* : Bool */; -val* var22 /* : AModule */; -val* var23 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var24 /* : Int */; -long var25 /* : Int */; +val* var6 /* : null */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : Array[Object] */; +long var10 /* : Int */; +long var11 /* : 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var3; var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; +{ +array__Array__init(var4); /* Direct call array#Array#init on */ +} var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode10 = var6; -var_listnode5 = var_nodearraylist1; -/* isa Array[Object] */ +var_pparamnode1 = var_nodearraylist1; +var_listnode2 = var_nodearraylist2; +/* isa Array[Object] */ cltype = type_array__Arraykernel__Object.color; idtype = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var7 = 0; +if(var_listnode2 == NULL) { +var5 = 0; } else { -if(cltype >= var_listnode5->type->table_size) { -var7 = 0; +if(cltype >= var_listnode2->type->table_size) { +var5 = 0; } else { -var7 = var_listnode5->type->type_table[cltype] == idtype; +var5 = var_listnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3643); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4748); show_backtrace(1); } -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode8 = var8; -var_listnode7 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var9 = 0; -} else { -if(cltype10 >= var_listnode7->type->table_size) { -var9 = 0; +var6 = NULL; +if (var_pparamnode1 == NULL) { +var7 = 0; /* is null */ } else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +var7 = 1; /* arg is null and recv is not */ } +if (0) { +var8 = ((short int (*)(val*, val*))(var_pparamnode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_pparamnode1, var6) /* != on */; +var7 = var8; } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3646); -show_backtrace(1); +if (var7){ +{ +array__Array__add(var_listnode3, var_pparamnode1); /* Direct call array#Array#add on */ } -var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var12; -var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var13; -var_pclassdefnode9 = var_nodearraylist3; -/* isa nullable AClassdef */ -cltype15 = type_nullable_parser_nodes__AClassdef.color; -idtype16 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_pclassdefnode9->type->table_size) { -var14 = 0; } else { -var14 = var_pclassdefnode9->type->type_table[cltype15] == idtype16; } +{ +var9 = parser_work__ReduceAction__concat(self, var_listnode3, var_listnode2); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3652); -show_backtrace(1); +var_listnode3 = var9; +var_node_list = var_listnode3; +var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var11 = parser_work__Parser__go_to(var_p, var10); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on */; -var_listnode10 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ +{ +parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ } -if (var19){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +RET_LABEL:; } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +/* method parser#ReduceAction125#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction125__action(val* self, val* p0) { +parser__ReduceAction125__action(self, p0); /* Direct call parser#ReduceAction125#action on */ +RET_LABEL:; } -if (var21){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +/* method parser#ReduceAction127#action for (self: ReduceAction127, Parser) */ +void parser__ReduceAction127__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_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pparamnode1 /* var pparamnode1: nullable Object */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var_pparamnode1 = var_nodearraylist3; +var_node_list = var_pparamnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var23 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var22; -var_node_list = var_pmodulenode1; -var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction56#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction56__action(val* self, val* p0) { -parser__ReduceAction56__action(self, p0); +/* method parser#ReduceAction127#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction127__action(val* self, val* p0) { +parser__ReduceAction127__action(self, p0); /* Direct call parser#ReduceAction127#action on */ RET_LABEL:; } -/* method parser#ReduceAction57#action for (self: ReduceAction57, Parser) */ -void parser__ReduceAction57__action(val* self, val* p0) { +/* method parser#ReduceAction128#action for (self: ReduceAction128, Parser) */ +void parser__ReduceAction128__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* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var17 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var22 /* : null */; -short int var23 /* : Bool */; -val* var24 /* : null */; -short int var25 /* : Bool */; -val* var26 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var27 /* : Int */; -long var28 /* : Int */; +val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AParam */; +val* var8 /* : null */; +val* var9 /* : null */; +val* var_pparamnode1 /* var pparamnode1: nullable AParam */; +long var10 /* : Int */; +long var11 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode10 = var7; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var8 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3683); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4778); show_backtrace(1); } -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype10 = type_array__Arraykernel__Object.color; -idtype11 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var9 = 0; +var_pannotationsnode5 = var_nodearraylist2; +/* isa nullable AAnnotations */ +cltype5 = type_nullable_parser_nodes__AAnnotations.color; +idtype6 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode5 == NULL) { +var4 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype5 >= var_pannotationsnode5->type->table_size) { +var4 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var4 = var_pannotationsnode5->type->type_table[cltype5] == idtype6; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3685); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4780); show_backtrace(1); } -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -var_listnode8 = var12; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var13 = 0; +var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam); +var8 = NULL; +var9 = NULL; +{ +parser_prod__AParam__init_aparam(var7, var_tidnode2, var8, var9, var_pannotationsnode5); /* Direct call parser_prod#AParam#init_aparam on */ +} +var_pparamnode1 = var7; +var_node_list = var_pparamnode1; +var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var11 = parser_work__Parser__go_to(var_p, var10); +} +{ +parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction128#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction128__action(val* self, val* p0) { +parser__ReduceAction128__action(self, p0); /* Direct call parser#ReduceAction128#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction129#action for (self: ReduceAction129, Parser) */ +void parser__ReduceAction129__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AParam */; +val* var8 /* : null */; +val* var9 /* : null */; +val* var_pparamnode1 /* var pparamnode1: nullable AParam */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var3 = 1; } else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3688); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4799); show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var16; -var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on */; -var_pclassdefnode6 = var17; -var_pclassdefnode9 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype19 = type_nullable_parser_nodes__AClassdef.color; -idtype20 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode9 == NULL) { -var18 = 1; +var_ptypenode3 = var_nodearraylist2; +/* isa nullable AType */ +cltype5 = type_nullable_parser_nodes__AType.color; +idtype6 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var4 = 1; } else { -if(cltype19 >= var_pclassdefnode9->type->table_size) { -var18 = 0; +if(cltype5 >= var_ptypenode3->type->table_size) { +var4 = 0; } else { -var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20; +var4 = var_ptypenode3->type->type_table[cltype5] == idtype6; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3694); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4801); show_backtrace(1); } -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on */; -var_listnode10 = var21; -var22 = NULL; -if (var_pclassdefnode6 == NULL) { -var23 = 0; /* is null */ -} else { -var23 = 1; /* arg is null and recv is not */ -} -if (var23){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam); +var8 = NULL; +var9 = NULL; +{ +parser_prod__AParam__init_aparam(var7, var_tidnode2, var_ptypenode3, var8, var9); /* Direct call parser_prod#AParam#init_aparam on */ } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 1; /* arg is null and recv is not */ +var_pparamnode1 = var7; +var_node_list = var_pparamnode1; +var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var11 = parser_work__Parser__go_to(var_p, var10); } -if (var25){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ } -var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on */; -var_pmodulenode1 = var26; -var_node_list = var_pmodulenode1; -var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction57#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction57__action(val* self, val* p0) { -parser__ReduceAction57__action(self, p0); +/* method parser#ReduceAction129#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction129__action(val* self, val* p0) { +parser__ReduceAction129__action(self, p0); /* Direct call parser#ReduceAction129#action on */ RET_LABEL:; } -/* method parser#ReduceAction58#action for (self: ReduceAction58, Parser) */ -void parser__ReduceAction58__action(val* self, val* p0) { +/* method parser#ReduceAction130#action for (self: ReduceAction130, Parser) */ +void parser__ReduceAction130__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype; -int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : Array[Object] */; -val* var23 /* : null */; -short int var24 /* : Bool */; -val* var25 /* : null */; -short int var26 /* : Bool */; -val* var27 /* : AModule */; -val* var28 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var29 /* : Int */; -long var30 /* : Int */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AParam */; +val* var12 /* : null */; +val* var_pparamnode1 /* var pparamnode1: nullable AParam */; +long var13 /* : Int */; +long var14 /* : 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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode11 = var7; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var8 = 0; -} else { -if(cltype >= var_listnode3->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode3->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3725); -show_backtrace(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var9; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var10 = 0; +var_nodearraylist1 = var3; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var4 = 1; } else { -if(cltype11 >= var_listnode6->type->table_size) { -var10 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var4 = 0; } else { -var10 = var_listnode6->type->type_table[cltype11] == idtype12; +var4 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3728); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4821); show_backtrace(1); } -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -var_listnode9 = var13; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var14 = 0; +var_ptypenode3 = var_nodearraylist3; +/* isa nullable AType */ +cltype6 = type_nullable_parser_nodes__AType.color; +idtype7 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var5 = 1; } else { -if(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype6 >= var_ptypenode3->type->table_size) { +var5 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var5 = var_ptypenode3->type->type_table[cltype6] == idtype7; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3731); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4823); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var17; -var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var18; -var_pclassdefnode10 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype20 = type_nullable_parser_nodes__AClassdef.color; -idtype21 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var19 = 1; +var_pannotationsnode5 = var_nodearraylist2; +/* isa nullable AAnnotations */ +cltype9 = type_nullable_parser_nodes__AAnnotations.color; +idtype10 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode5 == NULL) { +var8 = 1; } else { -if(cltype20 >= var_pclassdefnode10->type->table_size) { -var19 = 0; +if(cltype9 >= var_pannotationsnode5->type->table_size) { +var8 = 0; } else { -var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21; +var8 = var_pannotationsnode5->type->type_table[cltype9] == idtype10; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3737); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4825); show_backtrace(1); } -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on */; -var_listnode11 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam); +var12 = NULL; +{ +parser_prod__AParam__init_aparam(var11, var_tidnode2, var_ptypenode3, var12, var_pannotationsnode5); /* Direct call parser_prod#AParam#init_aparam on */ } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ +var_pparamnode1 = var11; +var_node_list = var_pparamnode1; +var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var14 = parser_work__Parser__go_to(var_p, var13); } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ } -var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var28 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var27; -var_node_list = var_pmodulenode1; -var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction58#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction58__action(val* self, val* p0) { -parser__ReduceAction58__action(self, p0); +/* method parser#ReduceAction130#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction130__action(val* self, val* p0) { +parser__ReduceAction130__action(self, p0); /* Direct call parser#ReduceAction130#action on */ RET_LABEL:; } -/* method parser#ReduceAction59#action for (self: ReduceAction59, Parser) */ -void parser__ReduceAction59__action(val* self, val* p0) { +/* method parser#ReduceAction131#action for (self: ReduceAction131, Parser) */ +void parser__ReduceAction131__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var9 /* : Bool */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var22 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var27 /* : null */; -short int var28 /* : Bool */; -val* var29 /* : null */; -short int var30 /* : Bool */; -val* var31 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var32 /* : Int */; -long var33 /* : Int */; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AParam */; +val* var12 /* : null */; +val* var_pparamnode1 /* var pparamnode1: nullable AParam */; +long var13 /* : Int */; +long var14 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode5 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode11 = var8; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var9 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var9 = 0; -} else { -var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3769); -show_backtrace(1); -} -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var10 = 0; -} else { -if(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; -} else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3771); -show_backtrace(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var13; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var14 = 0; +var_nodearraylist1 = var3; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var4 = 1; } else { -if(cltype15 >= var_listnode6->type->table_size) { -var14 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var4 = 0; } else { -var14 = var_listnode6->type->type_table[cltype15] == idtype16; +var4 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3774); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4845); show_backtrace(1); } -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -var_listnode9 = var17; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var18 = 0; +var_ptypenode3 = var_nodearraylist2; +/* isa nullable AType */ +cltype6 = type_nullable_parser_nodes__AType.color; +idtype7 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var5 = 1; } else { -if(cltype19 >= var_listnode8->type->table_size) { -var18 = 0; +if(cltype6 >= var_ptypenode3->type->table_size) { +var5 = 0; } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; +var5 = var_ptypenode3->type->type_table[cltype6] == idtype7; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3777); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4847); show_backtrace(1); } -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var21; -var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var22; -var_pclassdefnode10 = var_nodearraylist5; -/* isa nullable AClassdef */ -cltype24 = type_nullable_parser_nodes__AClassdef.color; -idtype25 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var23 = 1; +var_tdotdotdotnode4 = var_nodearraylist3; +/* isa nullable TDotdotdot */ +cltype9 = type_nullable_parser_nodes__TDotdotdot.color; +idtype10 = type_nullable_parser_nodes__TDotdotdot.id; +if(var_tdotdotdotnode4 == NULL) { +var8 = 1; } else { -if(cltype24 >= var_pclassdefnode10->type->table_size) { -var23 = 0; +if(cltype9 >= var_tdotdotdotnode4->type->table_size) { +var8 = 0; } else { -var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25; +var8 = var_tdotdotdotnode4->type->type_table[cltype9] == idtype10; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3783); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4849); show_backtrace(1); } -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on */; -var_listnode11 = var26; -var27 = NULL; -if (var_pclassdefnode7 == NULL) { -var28 = 0; /* is null */ -} else { -var28 = 1; /* arg is null and recv is not */ -} -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam); +var12 = NULL; +{ +parser_prod__AParam__init_aparam(var11, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var12); /* Direct call parser_prod#AParam#init_aparam on */ } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ -} else { -var30 = 1; /* arg is null and recv is not */ +var_pparamnode1 = var11; +var_node_list = var_pparamnode1; +var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var14 = parser_work__Parser__go_to(var_p, var13); } -if (var30){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ } -var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var31; -var_node_list = var_pmodulenode1; -var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction59#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction59__action(val* self, val* p0) { -parser__ReduceAction59__action(self, p0); +/* method parser#ReduceAction131#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction131__action(val* self, val* p0) { +parser__ReduceAction131__action(self, p0); /* Direct call parser#ReduceAction131#action on */ RET_LABEL:; } -/* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */ -void parser__ReduceAction60__action(val* self, val* p0) { +/* method parser#ReduceAction132#action for (self: ReduceAction132, Parser) */ +void parser__ReduceAction132__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -8116,1823 +8385,1599 @@ val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var6 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var8 /* : Bool */; +val* var_tidnode2 /* var tidnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var18 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : Array[Object] */; -val* var23 /* : null */; -short int var24 /* : Bool */; -val* var25 /* : null */; -short int var26 /* : Bool */; -val* var27 /* : AModule */; -val* var28 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var29 /* : Int */; -long var30 /* : Int */; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : AParam */; +val* var_pparamnode1 /* var pparamnode1: nullable AParam */; +long var16 /* : Int */; +long var17 /* : 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode11 = var7; -var_listnode4 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var8 = 0; +var_tidnode2 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode2 == NULL) { +var5 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var8 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var5 = 0; } else { -var8 = var_listnode4->type->type_table[cltype] == idtype; +var5 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3814); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4870); show_backtrace(1); } -var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var9; -var_listnode6 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var10 = 0; +var_ptypenode3 = var_nodearraylist3; +/* isa nullable AType */ +cltype7 = type_nullable_parser_nodes__AType.color; +idtype8 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var6 = 1; } else { -if(cltype11 >= var_listnode6->type->table_size) { -var10 = 0; +if(cltype7 >= var_ptypenode3->type->table_size) { +var6 = 0; } else { -var10 = var_listnode6->type->type_table[cltype11] == idtype12; +var6 = var_ptypenode3->type->type_table[cltype7] == idtype8; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3817); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4872); show_backtrace(1); } -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -var_listnode9 = var13; -var_listnode8 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var14 = 0; +var_tdotdotdotnode4 = var_nodearraylist4; +/* isa nullable TDotdotdot */ +cltype10 = type_nullable_parser_nodes__TDotdotdot.color; +idtype11 = type_nullable_parser_nodes__TDotdotdot.id; +if(var_tdotdotdotnode4 == NULL) { +var9 = 1; } else { -if(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype10 >= var_tdotdotdotnode4->type->table_size) { +var9 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var9 = var_tdotdotdotnode4->type->type_table[cltype10] == idtype11; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3820); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4874); show_backtrace(1); } -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var17; -var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var18; -var_pclassdefnode10 = var_nodearraylist4; -/* isa nullable AClassdef */ -cltype20 = type_nullable_parser_nodes__AClassdef.color; -idtype21 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var19 = 1; +var_pannotationsnode5 = var_nodearraylist2; +/* isa nullable AAnnotations */ +cltype13 = type_nullable_parser_nodes__AAnnotations.color; +idtype14 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode5 == NULL) { +var12 = 1; } else { -if(cltype20 >= var_pclassdefnode10->type->table_size) { -var19 = 0; +if(cltype13 >= var_pannotationsnode5->type->table_size) { +var12 = 0; } else { -var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21; +var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3826); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4876); show_backtrace(1); } -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on */; -var_listnode11 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ -} -if (var24){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +var15 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam); +{ +parser_prod__AParam__init_aparam(var15, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var_pannotationsnode5); /* Direct call parser_prod#AParam#init_aparam on */ } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ +var_pparamnode1 = var15; +var_node_list = var_pparamnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } -var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var28 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var27; -var_node_list = var_pmodulenode1; -var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction60#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction60__action(val* self, val* p0) { -parser__ReduceAction60__action(self, p0); +/* method parser#ReduceAction132#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction132__action(val* self, val* p0) { +parser__ReduceAction132__action(self, p0); /* Direct call parser#ReduceAction132#action on */ RET_LABEL:; } -/* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */ -void parser__ReduceAction61__action(val* self, val* p0) { +/* method parser#ReduceAction133#action for (self: ReduceAction133, Parser) */ +void parser__ReduceAction133__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var9 /* : Bool */; +val* var4 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; +val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : null */; short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; +short int var11 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var13 /* : Bool */; short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_listnode9 /* var listnode9: Array[Object] */; -val* var_listnode8 /* var listnode8: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var22 /* : ATopClassdef */; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */; -val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var27 /* : null */; -short int var28 /* : Bool */; -val* var29 /* : null */; -short int var30 /* : Bool */; -val* var31 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var32 /* : Int */; -long var33 /* : Int */; +short int var15 /* : Bool */; +val* var16 /* : AExternCalls */; +val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */; +long var17 /* : Int */; +long var18 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode3 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode5 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode11 = var8; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var9 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var9 = 0; -} else { -var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3858); -show_backtrace(1); +var_nodearraylist1 = var3; +var4 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var4); /* Direct call array#Array#init on */ } -var_listnode4 = var_nodearraylist2; -/* isa Array[Object] */ -cltype11 = type_array__Arraykernel__Object.color; -idtype12 = type_array__Arraykernel__Object.id; -if(var_listnode4 == NULL) { -var10 = 0; +var_listnode4 = var4; +var_tkwimportnode2 = var_nodearraylist1; +/* isa nullable TKwimport */ +cltype = type_nullable_parser_nodes__TKwimport.color; +idtype = type_nullable_parser_nodes__TKwimport.id; +if(var_tkwimportnode2 == NULL) { +var5 = 1; } else { -if(cltype11 >= var_listnode4->type->table_size) { -var10 = 0; +if(cltype >= var_tkwimportnode2->type->table_size) { +var5 = 0; } else { -var10 = var_listnode4->type->type_table[cltype11] == idtype12; +var5 = var_tkwimportnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3860); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4897); show_backtrace(1); } -var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on */; -var_listnode5 = var13; -var_listnode6 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode6 == NULL) { -var14 = 0; +var_pexterncallnode3 = var_nodearraylist3; +/* isa nullable AExternCall */ +cltype7 = type_nullable_parser_nodes__AExternCall.color; +idtype8 = type_nullable_parser_nodes__AExternCall.id; +if(var_pexterncallnode3 == NULL) { +var6 = 1; } else { -if(cltype15 >= var_listnode6->type->table_size) { -var14 = 0; +if(cltype7 >= var_pexterncallnode3->type->table_size) { +var6 = 0; } else { -var14 = var_listnode6->type->type_table[cltype15] == idtype16; +var6 = var_pexterncallnode3->type->type_table[cltype7] == idtype8; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3863); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4899); show_backtrace(1); } -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -var_listnode9 = var17; -var_listnode8 = var_nodearraylist4; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode8 == NULL) { -var18 = 0; -} else { -if(cltype19 >= var_listnode8->type->table_size) { -var18 = 0; +var9 = NULL; +if (var_pexterncallnode3 == NULL) { +var10 = 0; /* is null */ } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; -} +var10 = 1; /* arg is null and recv is not */ } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3866); -show_backtrace(1); +if (0) { +{ /* Inline kernel#Object#!= (var_pexterncallnode3,var9) on */ +var_other = var9; +{ +var14 = ((short int (*)(val*, val*))(var_pexterncallnode3->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexterncallnode3, var_other) /* == on */; +var13 = var14; } -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on */; -var_listnode9 = var21; -var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on */; -var_pclassdefnode7 = var22; -var_pclassdefnode10 = var_nodearraylist5; -/* isa nullable AClassdef */ -cltype24 = type_nullable_parser_nodes__AClassdef.color; -idtype25 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode10 == NULL) { -var23 = 1; -} else { -if(cltype24 >= var_pclassdefnode10->type->table_size) { -var23 = 0; -} else { -var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25; +var15 = !var13; +var11 = var15; +goto RET_LABEL12; +RET_LABEL12:(void)0; } +var10 = var11; } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3872); -show_backtrace(1); +if (var10){ +{ +array__Array__add(var_listnode4, var_pexterncallnode3); /* Direct call array#Array#add on */ } -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on */; -var_listnode11 = var26; -var27 = NULL; -if (var_pclassdefnode7 == NULL) { -var28 = 0; /* is null */ } else { -var28 = 1; /* arg is null and recv is not */ } -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +var16 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls); +{ +parser_prod__AExternCalls__init_aexterncalls(var16, var_tkwimportnode2, var_listnode4); /* Direct call parser_prod#AExternCalls#init_aexterncalls on */ } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ -} else { -var30 = 1; /* arg is null and recv is not */ +var_pexterncallsnode1 = var16; +var_node_list = var_pexterncallsnode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); } -if (var30){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on */; -var_pmodulenode1 = var31; -var_node_list = var_pmodulenode1; -var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction61#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction61__action(val* self, val* p0) { -parser__ReduceAction61__action(self, p0); +/* method parser#ReduceAction133#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction133__action(val* self, val* p0) { +parser__ReduceAction133__action(self, p0); /* Direct call parser#ReduceAction133#action on */ RET_LABEL:; } -/* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */ -void parser__ReduceAction62__action(val* self, val* p0) { +/* method parser#ReduceAction134#action for (self: ReduceAction134, Parser) */ +void parser__ReduceAction134__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var7 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; +val* var5 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var10 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var14 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; +val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_listnode4 /* var listnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : null */; +short int var14 /* : Bool */; short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode9 /* var listnode9: nullable Object */; +val* var_other /* var other: nullable Object */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : Array[Object] */; -val* var23 /* : ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */; -val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var28 /* : null */; -short int var29 /* : Bool */; -val* var30 /* : null */; -short int var31 /* : Bool */; -val* var32 /* : AModule */; -val* var33 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var34 /* : Int */; -long var35 /* : Int */; +val* var20 /* : Array[Object] */; +val* var21 /* : AExternCalls */; +val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */; +long var22 /* : Int */; +long var23 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode12 = var8; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var9 = 0; -} else { -if(cltype >= var_listnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode3->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3904); -show_backtrace(1); +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var10; -var_listnode5 = var_nodearraylist2; -/* isa Array[Object] */ -cltype12 = type_array__Arraykernel__Object.color; -idtype13 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var11 = 0; +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +array__Array__init(var5); /* Direct call array#Array#init on */ +} +var_listnode5 = var5; +var_tkwimportnode2 = var_nodearraylist1; +/* isa nullable TKwimport */ +cltype = type_nullable_parser_nodes__TKwimport.color; +idtype = type_nullable_parser_nodes__TKwimport.id; +if(var_tkwimportnode2 == NULL) { +var6 = 1; } else { -if(cltype12 >= var_listnode5->type->table_size) { -var11 = 0; +if(cltype >= var_tkwimportnode2->type->table_size) { +var6 = 0; } else { -var11 = var_listnode5->type->type_table[cltype12] == idtype13; +var6 = var_tkwimportnode2->type->type_table[cltype] == idtype; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3907); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4922); show_backtrace(1); } -var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var14; -var_listnode7 = var_nodearraylist3; -/* isa Array[Object] */ -cltype16 = type_array__Arraykernel__Object.color; -idtype17 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var15 = 0; +var_pexterncallnode3 = var_nodearraylist3; +/* isa nullable AExternCall */ +cltype8 = type_nullable_parser_nodes__AExternCall.color; +idtype9 = type_nullable_parser_nodes__AExternCall.id; +if(var_pexterncallnode3 == NULL) { +var7 = 1; } else { -if(cltype16 >= var_listnode7->type->table_size) { -var15 = 0; +if(cltype8 >= var_pexterncallnode3->type->table_size) { +var7 = 0; } else { -var15 = var_listnode7->type->type_table[cltype16] == idtype17; +var7 = var_pexterncallnode3->type->type_table[cltype8] == idtype9; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3910); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4924); show_backtrace(1); } -var18 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on */; -var_listnode10 = var18; -var_listnode9 = var_nodearraylist4; -/* isa Array[Object] */ -cltype20 = type_array__Arraykernel__Object.color; -idtype21 = type_array__Arraykernel__Object.id; -if(var_listnode9 == NULL) { -var19 = 0; +var_listnode4 = var_nodearraylist4; +/* isa Array[Object] */ +cltype11 = type_array__Arraykernel__Object.color; +idtype12 = type_array__Arraykernel__Object.id; +if(var_listnode4 == NULL) { +var10 = 0; } else { -if(cltype20 >= var_listnode9->type->table_size) { -var19 = 0; +if(cltype11 >= var_listnode4->type->table_size) { +var10 = 0; } else { -var19 = var_listnode9->type->type_table[cltype20] == idtype21; +var10 = var_listnode4->type->type_table[cltype11] == idtype12; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3913); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4926); show_backtrace(1); } -var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on */; -var_listnode10 = var22; -var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode10) /* init_atopclassdef on */; -var_pclassdefnode8 = var23; -var_pclassdefnode11 = var_nodearraylist5; -/* isa nullable AClassdef */ -cltype25 = type_nullable_parser_nodes__AClassdef.color; -idtype26 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode11 == NULL) { -var24 = 1; -} else { -if(cltype25 >= var_pclassdefnode11->type->table_size) { -var24 = 0; +var13 = NULL; +if (var_pexterncallnode3 == NULL) { +var14 = 0; /* is null */ } else { -var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26; +var14 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_pexterncallnode3,var13) on */ +var_other = var13; +{ +var18 = ((short int (*)(val*, val*))(var_pexterncallnode3->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexterncallnode3, var_other) /* == on */; +var17 = var18; } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3919); -show_backtrace(1); +var19 = !var17; +var15 = var19; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on */; -var_listnode12 = var27; -var28 = NULL; -if (var_pclassdefnode8 == NULL) { -var29 = 0; /* is null */ -} else { -var29 = 1; /* arg is null and recv is not */ +var14 = var15; } -if (var29){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on */; -} else { +if (var14){ +{ +array__Array__add(var_listnode5, var_pexterncallnode3); /* Direct call array#Array#add on */ } -var30 = NULL; -if (var_pclassdefnode11 == NULL) { -var31 = 0; /* is null */ } else { -var31 = 1; /* arg is null and recv is not */ } -if (var31){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on */; -} else { +{ +var20 = parser_work__ReduceAction__concat(self, var_listnode5, var_listnode4); +} +var_listnode5 = var20; +var21 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls); +{ +parser_prod__AExternCalls__init_aexterncalls(var21, var_tkwimportnode2, var_listnode5); /* Direct call parser_prod#AExternCalls#init_aexterncalls on */ +} +var_pexterncallsnode1 = var21; +var_node_list = var_pexterncallsnode1; +var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var23 = parser_work__Parser__go_to(var_p, var22); +} +{ +parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } -var32 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var33 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var32, var33, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on */; -var_pmodulenode1 = var32; -var_node_list = var_pmodulenode1; -var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var35 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var34) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var35, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction62#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction62__action(val* self, val* p0) { -parser__ReduceAction62__action(self, p0); +/* method parser#ReduceAction134#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction134__action(val* self, val* p0) { +parser__ReduceAction134__action(self, p0); /* Direct call parser#ReduceAction134#action on */ RET_LABEL:; } -/* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */ -void parser__ReduceAction63__action(val* self, val* p0) { +/* method parser#ReduceAction136#action for (self: ReduceAction136, Parser) */ +void parser__ReduceAction136__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_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var7 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var8 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: Array[Object] */; -val* var9 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var10 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var14 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode9 /* var listnode9: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var27 /* : ATopClassdef */; -val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */; -val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var32 /* : null */; -short int var33 /* : Bool */; -val* var34 /* : null */; -short int var35 /* : Bool */; -val* var36 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var37 /* : Int */; -long var38 /* : Int */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist6 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -var_listnode4 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode6 = var8; -var9 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -var_listnode12 = var9; -var_pmoduledeclnode2 = var_nodearraylist1; -/* isa nullable AModuledecl */ -cltype = type_nullable_parser_nodes__AModuledecl.color; -idtype = type_nullable_parser_nodes__AModuledecl.id; -if(var_pmoduledeclnode2 == NULL) { -var10 = 1; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var10 = 0; -} else { -var10 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3952); -show_backtrace(1); -} -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype12 = type_array__Arraykernel__Object.color; -idtype13 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var11 = 0; -} else { -if(cltype12 >= var_listnode3->type->table_size) { -var11 = 0; -} else { -var11 = var_listnode3->type->type_table[cltype12] == idtype13; +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3954); -show_backtrace(1); +var_nodearraylist1 = var3; +var_pexterncallnode1 = var_nodearraylist3; +var_node_list = var_pexterncallnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var14; -var_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype16 = type_array__Arraykernel__Object.color; -idtype17 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var15 = 0; -} else { -if(cltype16 >= var_listnode5->type->table_size) { -var15 = 0; -} else { -var15 = var_listnode5->type->type_table[cltype16] == idtype17; +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3957); -show_backtrace(1); +/* method parser#ReduceAction136#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction136__action(val* self, val* p0) { +parser__ReduceAction136__action(self, p0); /* Direct call parser#ReduceAction136#action on */ +RET_LABEL:; } -var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on */; -var_listnode6 = var18; -var_listnode7 = var_nodearraylist4; -/* isa Array[Object] */ -cltype20 = type_array__Arraykernel__Object.color; -idtype21 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var19 = 0; -} else { -if(cltype20 >= var_listnode7->type->table_size) { -var19 = 0; -} else { -var19 = var_listnode7->type->type_table[cltype20] == idtype21; +/* method parser#ReduceAction137#action for (self: ReduceAction137, Parser) */ +void parser__ReduceAction137__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */; +long var2 /* : Int */; +long var3 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist1 = var1; +var_pexterncallnode1 = var_nodearraylist1; +var_node_list = var_pexterncallnode1; +var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var3 = parser_work__Parser__go_to(var_p, var2); } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3960); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ } -var22 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on */; -var_listnode10 = var22; -var_listnode9 = var_nodearraylist5; -/* isa Array[Object] */ -cltype24 = type_array__Arraykernel__Object.color; -idtype25 = type_array__Arraykernel__Object.id; -if(var_listnode9 == NULL) { -var23 = 0; -} else { -if(cltype24 >= var_listnode9->type->table_size) { -var23 = 0; -} else { -var23 = var_listnode9->type->type_table[cltype24] == idtype25; +RET_LABEL:; } +/* method parser#ReduceAction137#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction137__action(val* self, val* p0) { +parser__ReduceAction137__action(self, p0); /* Direct call parser#ReduceAction137#action on */ +RET_LABEL:; } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3963); -show_backtrace(1); +/* method parser#ReduceAction139#action for (self: ReduceAction139, Parser) */ +void parser__ReduceAction139__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : ASuperExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable ASuperExternCall */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on */; -var_listnode10 = var26; -var27 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef); -((void (*)(val*, val*))(var27->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var27, var_listnode10) /* init_atopclassdef on */; -var_pclassdefnode8 = var27; -var_pclassdefnode11 = var_nodearraylist6; -/* isa nullable AClassdef */ -cltype29 = type_nullable_parser_nodes__AClassdef.color; -idtype30 = type_nullable_parser_nodes__AClassdef.id; -if(var_pclassdefnode11 == NULL) { -var28 = 1; +var_nodearraylist1 = var1; +var_tkwsupernode2 = var_nodearraylist1; +/* isa nullable TKwsuper */ +cltype = type_nullable_parser_nodes__TKwsuper.color; +idtype = type_nullable_parser_nodes__TKwsuper.id; +if(var_tkwsupernode2 == NULL) { +var2 = 1; } else { -if(cltype29 >= var_pclassdefnode11->type->table_size) { -var28 = 0; +if(cltype >= var_tkwsupernode2->type->table_size) { +var2 = 0; } else { -var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30; -} +var2 = var_tkwsupernode2->type->type_table[cltype] == idtype; } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3969); -show_backtrace(1); -} -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on */; -var_listnode12 = var31; -var32 = NULL; -if (var_pclassdefnode8 == NULL) { -var33 = 0; /* is null */ -} else { -var33 = 1; /* arg is null and recv is not */ } -if (var33){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on */; -} else { +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4970); +show_backtrace(1); } -var34 = NULL; -if (var_pclassdefnode11 == NULL) { -var35 = 0; /* is null */ -} else { -var35 = 1; /* arg is null and recv is not */ +var3 = NEW_parser_nodes__ASuperExternCall(&type_parser_nodes__ASuperExternCall); +{ +parser_prod__ASuperExternCall__init_asuperexterncall(var3, var_tkwsupernode2); /* Direct call parser_prod#ASuperExternCall#init_asuperexterncall on */ } -if (var35){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on */; -} else { +var_pexterncallnode1 = var3; +var_node_list = var_pexterncallnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var36 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var36, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on */; -var_pmodulenode1 = var36; -var_node_list = var_pmodulenode1; -var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var38 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var37) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var38, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction63#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) { -parser__ReduceAction63__action(self, p0); +/* method parser#ReduceAction139#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction139__action(val* self, val* p0) { +parser__ReduceAction139__action(self, p0); /* Direct call parser#ReduceAction139#action on */ RET_LABEL:; } -/* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */ -void parser__ReduceAction64__action(val* self, val* p0) { +/* method parser#ReduceAction140#action for (self: ReduceAction140, Parser) */ +void parser__ReduceAction140__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 */; +val* var_pmethidnode2 /* var pmethidnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : AModuledecl */; -val* var14 /* : null */; -val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var3 /* : ALocalPropExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable ALocalPropExternCall */; +long var4 /* : Int */; +long var5 /* : 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_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var_pdocnode2 = var_nodearraylist1; -/* 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; +{ +var1 = parser_work__Parser__pop(var_p); } -} -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3998); -show_backtrace(1); -} -var_tkwmodulenode3 = var_nodearraylist2; -/* isa nullable TKwmodule */ -cltype8 = type_nullable_parser_nodes__TKwmodule.color; -idtype9 = type_nullable_parser_nodes__TKwmodule.id; -if(var_tkwmodulenode3 == NULL) { -var7 = 1; +var_nodearraylist1 = var1; +var_pmethidnode2 = var_nodearraylist1; +/* isa nullable AMethid */ +cltype = type_nullable_parser_nodes__AMethid.color; +idtype = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode2 == NULL) { +var2 = 1; } else { -if(cltype8 >= var_tkwmodulenode3->type->table_size) { -var7 = 0; +if(cltype >= var_pmethidnode2->type->table_size) { +var2 = 0; } else { -var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9; +var2 = var_pmethidnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4000); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 4985); show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist4; -/* isa nullable AModuleName */ -cltype11 = type_nullable_parser_nodes__AModuleName.color; -idtype12 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var10 = 1; -} else { -if(cltype11 >= var_pmodulenamenode4->type->table_size) { -var10 = 0; -} else { -var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12; +var3 = NEW_parser_nodes__ALocalPropExternCall(&type_parser_nodes__ALocalPropExternCall); +{ +parser_prod__ALocalPropExternCall__init_alocalpropexterncall(var3, var_pmethidnode2); /* Direct call parser_prod#ALocalPropExternCall#init_alocalpropexterncall on */ } +var_pexterncallnode1 = var3; +var_node_list = var_pexterncallnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4002); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var13 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl); -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var13, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var14) /* init_amoduledecl on */; -var_pmoduledeclnode1 = var13; -var_node_list = var_pmoduledeclnode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction64#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) { -parser__ReduceAction64__action(self, p0); +/* method parser#ReduceAction140#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction140__action(val* self, val* p0) { +parser__ReduceAction140__action(self, p0); /* Direct call parser#ReduceAction140#action on */ RET_LABEL:; } -/* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */ -void parser__ReduceAction65__action(val* self, val* p0) { +/* method parser#ReduceAction141#action for (self: ReduceAction141, Parser) */ +void parser__ReduceAction141__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_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */; +val* var_tdotnode3 /* var tdotnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_pmethidnode4 /* var pmethidnode4: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AModuledecl */; -val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */; -long var18 /* : Int */; -long var19 /* : Int */; +val* var11 /* : AFullPropExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AFullPropExternCall */; +long var12 /* : Int */; +long var13 /* : 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_nodearraylist6 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var6; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var7 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var4 = 0; } else { -var7 = var_pdocnode2->type->type_table[cltype] == idtype; +var4 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4025); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5002); show_backtrace(1); } -var_tkwmodulenode3 = var_nodearraylist2; -/* isa nullable TKwmodule */ -cltype9 = type_nullable_parser_nodes__TKwmodule.color; -idtype10 = type_nullable_parser_nodes__TKwmodule.id; -if(var_tkwmodulenode3 == NULL) { -var8 = 1; +var_tdotnode3 = var_nodearraylist2; +/* isa nullable TDot */ +cltype6 = type_nullable_parser_nodes__TDot.color; +idtype7 = type_nullable_parser_nodes__TDot.id; +if(var_tdotnode3 == NULL) { +var5 = 1; } else { -if(cltype9 >= var_tkwmodulenode3->type->table_size) { -var8 = 0; +if(cltype6 >= var_tdotnode3->type->table_size) { +var5 = 0; } else { -var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10; +var5 = var_tdotnode3->type->type_table[cltype6] == idtype7; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4027); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5004); show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist4; -/* isa nullable AModuleName */ -cltype12 = type_nullable_parser_nodes__AModuleName.color; -idtype13 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var11 = 1; +var_pmethidnode4 = var_nodearraylist3; +/* isa nullable AMethid */ +cltype9 = type_nullable_parser_nodes__AMethid.color; +idtype10 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode4 == NULL) { +var8 = 1; } else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; +if(cltype9 >= var_pmethidnode4->type->table_size) { +var8 = 0; } else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var8 = var_pmethidnode4->type->type_table[cltype9] == idtype10; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4029); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5006); show_backtrace(1); } -var_pannotationsnode5 = var_nodearraylist5; -/* isa nullable AAnnotations */ -cltype15 = type_nullable_parser_nodes__AAnnotations.color; -idtype16 = type_nullable_parser_nodes__AAnnotations.id; -if(var_pannotationsnode5 == NULL) { -var14 = 1; +var11 = NEW_parser_nodes__AFullPropExternCall(&type_parser_nodes__AFullPropExternCall); +{ +parser_prod__AFullPropExternCall__init_afullpropexterncall(var11, var_ptypenode2, var_tdotnode3, var_pmethidnode4); /* Direct call parser_prod#AFullPropExternCall#init_afullpropexterncall on */ +} +var_pexterncallnode1 = var11; +var_node_list = var_pexterncallnode1; +var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var13 = parser_work__Parser__go_to(var_p, var12); +} +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction141#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction141__action(val* self, val* p0) { +parser__ReduceAction141__action(self, p0); /* Direct call parser#ReduceAction141#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction142#action for (self: ReduceAction142, Parser) */ +void parser__ReduceAction142__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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AInitPropExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AInitPropExternCall */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var2 = 1; } else { -if(cltype15 >= var_pannotationsnode5->type->table_size) { -var14 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var2 = 0; } else { -var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16; +var2 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4031); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5023); show_backtrace(1); } -var17 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var17, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_amoduledecl on */; -var_pmoduledeclnode1 = var17; -var_node_list = var_pmoduledeclnode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; +var3 = NEW_parser_nodes__AInitPropExternCall(&type_parser_nodes__AInitPropExternCall); +{ +parser_prod__AInitPropExternCall__init_ainitpropexterncall(var3, var_ptypenode2); /* Direct call parser_prod#AInitPropExternCall#init_ainitpropexterncall on */ +} +var_pexterncallnode1 = var3; +var_node_list = var_pexterncallnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction65#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) { -parser__ReduceAction65__action(self, p0); +/* method parser#ReduceAction142#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction142__action(val* self, val* p0) { +parser__ReduceAction142__action(self, p0); /* Direct call parser#ReduceAction142#action on */ RET_LABEL:; } -/* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */ -void parser__ReduceAction66__action(val* self, val* p0) { +/* method parser#ReduceAction143#action for (self: ReduceAction143, Parser) */ +void parser__ReduceAction143__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_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var7 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */; +val* var_tdotnode3 /* var tdotnode3: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var14 /* : AStdImport */; -val* var15 /* : null */; -val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */; -long var16 /* : Int */; -long var17 /* : Int */; +val* var_tkwasnode4 /* var tkwasnode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_ptypenode5 /* var ptypenode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : ACastAsExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */; +long var21 /* : Int */; +long var22 /* : 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_nodearraylist6 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var6; -var_pvisibilitynode2 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype = type_nullable_parser_nodes__AVisibility.color; -idtype = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var7 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var10 = 0; } else { -var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var10 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4054); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5046); show_backtrace(1); } -var_tkwimportnode3 = var_nodearraylist3; -/* isa nullable TKwimport */ -cltype9 = type_nullable_parser_nodes__TKwimport.color; -idtype10 = type_nullable_parser_nodes__TKwimport.id; -if(var_tkwimportnode3 == NULL) { -var8 = 1; +var_tdotnode3 = var_nodearraylist2; +/* isa nullable TDot */ +cltype12 = type_nullable_parser_nodes__TDot.color; +idtype13 = type_nullable_parser_nodes__TDot.id; +if(var_tdotnode3 == NULL) { +var11 = 1; } else { -if(cltype9 >= var_tkwimportnode3->type->table_size) { -var8 = 0; +if(cltype12 >= var_tdotnode3->type->table_size) { +var11 = 0; } else { -var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10; +var11 = var_tdotnode3->type->type_table[cltype12] == idtype13; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4056); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5048); show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist5; -/* isa nullable AModuleName */ -cltype12 = type_nullable_parser_nodes__AModuleName.color; -idtype13 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var11 = 1; +var_tkwasnode4 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype15 = type_nullable_parser_nodes__TKwas.color; +idtype16 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode4 == NULL) { +var14 = 1; } else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; +if(cltype15 >= var_tkwasnode4->type->table_size) { +var14 = 0; +} else { +var14 = var_tkwasnode4->type->type_table[cltype15] == idtype16; +} +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5050); +show_backtrace(1); +} +var_ptypenode5 = var_nodearraylist7; +/* isa nullable AType */ +cltype18 = type_nullable_parser_nodes__AType.color; +idtype19 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_ptypenode5->type->table_size) { +var17 = 0; } else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var17 = var_ptypenode5->type->type_table[cltype18] == idtype19; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4058); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5052); show_backtrace(1); } -var14 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport); -var15 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var15) /* init_astdimport on */; -var_pimportnode1 = var14; -var_node_list = var_pimportnode1; -var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on */; +var20 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall); +{ +parser_prod__ACastAsExternCall__init_acastasexterncall(var20, var_ptypenode2, var_tdotnode3, var_tkwasnode4, var_ptypenode5); /* Direct call parser_prod#ACastAsExternCall#init_acastasexterncall on */ +} +var_pexterncallnode1 = var20; +var_node_list = var_pexterncallnode1; +var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var22 = parser_work__Parser__go_to(var_p, var21); +} +{ +parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction66#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) { -parser__ReduceAction66__action(self, p0); +/* method parser#ReduceAction143#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction143__action(val* self, val* p0) { +parser__ReduceAction143__action(self, p0); /* Direct call parser#ReduceAction143#action on */ RET_LABEL:; } -/* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */ -void parser__ReduceAction67__action(val* self, val* p0) { +/* method parser#ReduceAction144#action for (self: ReduceAction144, Parser) */ +void parser__ReduceAction144__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_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var8 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : AStdImport */; -val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */; -long var19 /* : Int */; -long var20 /* : Int */; +val* var_tdotnode3 /* var tdotnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_tkwasnode4 /* var tkwasnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_ptypenode5 /* var ptypenode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : ACastAsExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */; +long var17 /* : Int */; +long var18 /* : 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_nodearraylist7 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_pvisibilitynode2 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype = type_nullable_parser_nodes__AVisibility.color; -idtype = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode2 == NULL) { -var8 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var8 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var6 = 0; } else { -var8 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var6 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4082); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5074); show_backtrace(1); } -var_tkwimportnode3 = var_nodearraylist3; -/* isa nullable TKwimport */ -cltype10 = type_nullable_parser_nodes__TKwimport.color; -idtype11 = type_nullable_parser_nodes__TKwimport.id; -if(var_tkwimportnode3 == NULL) { -var9 = 1; +var_tdotnode3 = var_nodearraylist2; +/* isa nullable TDot */ +cltype8 = type_nullable_parser_nodes__TDot.color; +idtype9 = type_nullable_parser_nodes__TDot.id; +if(var_tdotnode3 == NULL) { +var7 = 1; } else { -if(cltype10 >= var_tkwimportnode3->type->table_size) { -var9 = 0; +if(cltype8 >= var_tdotnode3->type->table_size) { +var7 = 0; } else { -var9 = var_tkwimportnode3->type->type_table[cltype10] == idtype11; +var7 = var_tdotnode3->type->type_table[cltype8] == idtype9; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4084); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5076); show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist5; -/* isa nullable AModuleName */ -cltype13 = type_nullable_parser_nodes__AModuleName.color; -idtype14 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var12 = 1; +var_tkwasnode4 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype11 = type_nullable_parser_nodes__TKwas.color; +idtype12 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode4 == NULL) { +var10 = 1; } else { -if(cltype13 >= var_pmodulenamenode4->type->table_size) { -var12 = 0; +if(cltype11 >= var_tkwasnode4->type->table_size) { +var10 = 0; } else { -var12 = var_pmodulenamenode4->type->type_table[cltype13] == idtype14; +var10 = var_tkwasnode4->type->type_table[cltype11] == idtype12; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4086); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5078); show_backtrace(1); } -var_pannotationsnode5 = var_nodearraylist6; -/* isa nullable AAnnotations */ -cltype16 = type_nullable_parser_nodes__AAnnotations.color; -idtype17 = type_nullable_parser_nodes__AAnnotations.id; -if(var_pannotationsnode5 == NULL) { -var15 = 1; +var_ptypenode5 = var_nodearraylist5; +/* isa nullable AType */ +cltype14 = type_nullable_parser_nodes__AType.color; +idtype15 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode5 == NULL) { +var13 = 1; } else { -if(cltype16 >= var_pannotationsnode5->type->table_size) { -var15 = 0; +if(cltype14 >= var_ptypenode5->type->table_size) { +var13 = 0; } else { -var15 = var_pannotationsnode5->type->type_table[cltype16] == idtype17; +var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4088); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5080); show_backtrace(1); } -var18 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport); -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var18, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_astdimport on */; -var_pimportnode1 = var18; -var_node_list = var_pimportnode1; -var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on */; +var16 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall); +{ +parser_prod__ACastAsExternCall__init_acastasexterncall(var16, var_ptypenode2, var_tdotnode3, var_tkwasnode4, var_ptypenode5); /* Direct call parser_prod#ACastAsExternCall#init_acastasexterncall on */ +} +var_pexterncallnode1 = var16; +var_node_list = var_pexterncallnode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); +} +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction67#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) { -parser__ReduceAction67__action(self, p0); +/* method parser#ReduceAction144#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction144__action(val* self, val* p0) { +parser__ReduceAction144__action(self, p0); /* Direct call parser#ReduceAction144#action on */ RET_LABEL:; } -/* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */ -void parser__ReduceAction68__action(val* self, val* p0) { +/* method parser#ReduceAction145#action for (self: ReduceAction145, Parser) */ +void parser__ReduceAction145__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_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var7 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_tkwendnode4 /* var tkwendnode4: nullable Object */; +val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var14 /* : ANoImport */; -val* var_pimportnode1 /* var pimportnode1: nullable ANoImport */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : AAsNullableExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */; +long var18 /* : Int */; +long var19 /* : 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_nodearraylist6 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var6; -var_pvisibilitynode2 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype = type_nullable_parser_nodes__AVisibility.color; -idtype = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode2 == NULL) { -var7 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var9; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var7 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var10 = 0; } else { -var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var10 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4111); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5106); show_backtrace(1); } -var_tkwimportnode3 = var_nodearraylist3; -/* isa nullable TKwimport */ -cltype9 = type_nullable_parser_nodes__TKwimport.color; -idtype10 = type_nullable_parser_nodes__TKwimport.id; -if(var_tkwimportnode3 == NULL) { -var8 = 1; +var_tkwasnode3 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype12 = type_nullable_parser_nodes__TKwas.color; +idtype13 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode3 == NULL) { +var11 = 1; } else { -if(cltype9 >= var_tkwimportnode3->type->table_size) { -var8 = 0; +if(cltype12 >= var_tkwasnode3->type->table_size) { +var11 = 0; } else { -var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10; +var11 = var_tkwasnode3->type->type_table[cltype12] == idtype13; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4113); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5108); show_backtrace(1); } -var_tkwendnode4 = var_nodearraylist5; -/* isa nullable TKwend */ -cltype12 = type_nullable_parser_nodes__TKwend.color; -idtype13 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode4 == NULL) { -var11 = 1; +var_tkwnullablenode4 = var_nodearraylist7; +/* isa nullable TKwnullable */ +cltype15 = type_nullable_parser_nodes__TKwnullable.color; +idtype16 = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode4 == NULL) { +var14 = 1; } else { -if(cltype12 >= var_tkwendnode4->type->table_size) { -var11 = 0; +if(cltype15 >= var_tkwnullablenode4->type->table_size) { +var14 = 0; } else { -var11 = var_tkwendnode4->type->type_table[cltype12] == idtype13; +var14 = var_tkwnullablenode4->type->type_table[cltype15] == idtype16; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4115); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5110); show_backtrace(1); } -var14 = NEW_parser_nodes__ANoImport(&type_parser_nodes__ANoImport); -((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ANoImport__init_anoimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_tkwendnode4) /* init_anoimport on */; -var_pimportnode1 = var14; -var_node_list = var_pimportnode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; +var17 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall); +{ +parser_prod__AAsNullableExternCall__init_aasnullableexterncall(var17, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4); /* Direct call parser_prod#AAsNullableExternCall#init_aasnullableexterncall on */ +} +var_pexterncallnode1 = var17; +var_node_list = var_pexterncallnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); +} +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction68#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction68__action(val* self, val* p0) { -parser__ReduceAction68__action(self, p0); +/* method parser#ReduceAction145#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction145__action(val* self, val* p0) { +parser__ReduceAction145__action(self, p0); /* Direct call parser#ReduceAction145#action on */ RET_LABEL:; } -/* method parser#ReduceAction69#action for (self: ReduceAction69, Parser) */ -void parser__ReduceAction69__action(val* self, val* p0) { +/* method parser#ReduceAction146#action for (self: ReduceAction146, Parser) */ +void parser__ReduceAction146__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* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */; -short int var3 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var4 /* : null */; -short int var5 /* : Bool */; -val* var6 /* : AMainClassdef */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AMainClassdef */; -long var7 /* : Int */; -long var8 /* : Int */; +val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : AAsNullableExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */; +long var14 /* : Int */; +long var15 /* : 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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -var_listnode3 = var2; -var_ppropdefnode2 = var_nodearraylist1; -/* isa nullable APropdef */ -cltype = type_nullable_parser_nodes__APropdef.color; -idtype = type_nullable_parser_nodes__APropdef.id; -if(var_ppropdefnode2 == NULL) { -var3 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_ppropdefnode2->type->table_size) { -var3 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var6 = 0; } else { -var3 = var_ppropdefnode2->type->type_table[cltype] == idtype; +var6 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4133); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5131); show_backtrace(1); } -var4 = NULL; -if (var_ppropdefnode2 == NULL) { -var5 = 0; /* is null */ +var_tkwasnode3 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype8 = type_nullable_parser_nodes__TKwas.color; +idtype9 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode3 == NULL) { +var7 = 1; } else { -var5 = 1; /* arg is null and recv is not */ -} -if (var5){ -((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on */; +if(cltype8 >= var_tkwasnode3->type->table_size) { +var7 = 0; } else { +var7 = var_tkwasnode3->type->type_table[cltype8] == idtype9; } -var6 = NEW_parser_nodes__AMainClassdef(&type_parser_nodes__AMainClassdef); -((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AMainClassdef__init_amainclassdef]))(var6, var_listnode3) /* init_amainclassdef on */; -var_pclassdefnode1 = var6; -var_node_list = var_pclassdefnode1; -var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction69#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction69__action(val* self, val* p0) { -parser__ReduceAction69__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction70#action for (self: ReduceAction70, Parser) */ -void parser__ReduceAction70__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_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : null */; -long var3 /* : Int */; -long var4 /* : 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_nodearraylist1 = var1; -var2 = NULL; -var_node_list = var2; -var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on */; -RET_LABEL:; } -/* method parser#ReduceAction70#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction70__action(val* self, val* p0) { -parser__ReduceAction70__action(self, p0); -RET_LABEL:; +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5133); +show_backtrace(1); } -/* method parser#ReduceAction71#action for (self: ReduceAction71, Parser) */ -void parser__ReduceAction71__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_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var4 /* : AMainMethPropdef */; -val* var5 /* : null */; -val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMainMethPropdef */; -long var6 /* : Int */; -long var7 /* : 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_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var_pexprnode3 = var_nodearraylist2; -/* isa nullable AExpr */ -cltype = type_nullable_parser_nodes__AExpr.color; -idtype = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var3 = 1; +var_tkwnullablenode4 = var_nodearraylist5; +/* isa nullable TKwnullable */ +cltype11 = type_nullable_parser_nodes__TKwnullable.color; +idtype12 = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode4 == NULL) { +var10 = 1; } else { -if(cltype >= var_pexprnode3->type->table_size) { -var3 = 0; +if(cltype11 >= var_tkwnullablenode4->type->table_size) { +var10 = 0; } else { -var3 = var_pexprnode3->type->type_table[cltype] == idtype; +var10 = var_tkwnullablenode4->type->type_table[cltype11] == idtype12; } } -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4162); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5135); show_backtrace(1); } -var4 = NEW_parser_nodes__AMainMethPropdef(&type_parser_nodes__AMainMethPropdef); -var5 = NULL; -((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AMainMethPropdef__init_amainmethpropdef]))(var4, var5, var_pexprnode3) /* init_amainmethpropdef on */; -var_ppropdefnode1 = var4; -var_node_list = var_ppropdefnode1; -var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on */; +var13 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall); +{ +parser_prod__AAsNullableExternCall__init_aasnullableexterncall(var13, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4); /* Direct call parser_prod#AAsNullableExternCall#init_aasnullableexterncall on */ +} +var_pexterncallnode1 = var13; +var_node_list = var_pexterncallnode1; +var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var15 = parser_work__Parser__go_to(var_p, var14); +} +{ +parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction71#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction71__action(val* self, val* p0) { -parser__ReduceAction71__action(self, p0); +/* method parser#ReduceAction146#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction146__action(val* self, val* p0) { +parser__ReduceAction146__action(self, p0); /* Direct call parser#ReduceAction146#action on */ RET_LABEL:; } -/* method parser#ReduceAction73#action for (self: ReduceAction73, Parser) */ -void parser__ReduceAction73__action(val* self, val* p0) { +/* method parser#ReduceAction147#action for (self: ReduceAction147, Parser) */ +void parser__ReduceAction147__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_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var6 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var7 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var8 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var9 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var11 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var12 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var24 /* : AStdClassdef */; -val* var25 /* : null */; -val* var26 /* : null */; -val* var27 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var28 /* : Int */; -long var29 /* : Int */; +val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var22 /* : AAsNotNullableExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */; +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_nodearraylist7 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -var_listnode7 = var8; -var9 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -var_listnode10 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -var_listnode11 = var10; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var11 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist11 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist10 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist9 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist8 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist7 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist6 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var8; +{ +var9 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var9; +{ +var10 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var10; +{ +var11 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var11; +var_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var12 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var11 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var12 = 0; } else { -var11 = var_pdocnode2->type->type_table[cltype] == idtype; +var12 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4187); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5162); show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype13 = type_nullable_parser_nodes__AVisibility.color; -idtype14 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var12 = 1; +var_tkwasnode3 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype14 = type_nullable_parser_nodes__TKwas.color; +idtype15 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode3 == NULL) { +var13 = 1; } else { -if(cltype13 >= var_pvisibilitynode4->type->table_size) { -var12 = 0; +if(cltype14 >= var_tkwasnode3->type->table_size) { +var13 = 0; } else { -var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14; +var13 = var_tkwasnode3->type->type_table[cltype14] == idtype15; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4189); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5164); show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype16 = type_nullable_parser_nodes__AClasskind.color; -idtype17 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var15 = 1; +var_tkwnotnode4 = var_nodearraylist7; +/* isa nullable TKwnot */ +cltype17 = type_nullable_parser_nodes__TKwnot.color; +idtype18 = type_nullable_parser_nodes__TKwnot.id; +if(var_tkwnotnode4 == NULL) { +var16 = 1; } else { -if(cltype16 >= var_pclasskindnode5->type->table_size) { -var15 = 0; +if(cltype17 >= var_tkwnotnode4->type->table_size) { +var16 = 0; } else { -var15 = var_pclasskindnode5->type->type_table[cltype16] == idtype17; +var16 = var_tkwnotnode4->type->type_table[cltype17] == idtype18; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4191); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5166); show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype19 = type_nullable_parser_nodes__TClassid.color; -idtype20 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var18 = 1; +var_tkwnullablenode5 = var_nodearraylist9; +/* isa nullable TKwnullable */ +cltype20 = type_nullable_parser_nodes__TKwnullable.color; +idtype21 = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode5 == NULL) { +var19 = 1; } else { -if(cltype19 >= var_tclassidnode6->type->table_size) { -var18 = 0; +if(cltype20 >= var_tkwnullablenode5->type->table_size) { +var19 = 0; } else { -var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20; +var19 = var_tkwnullablenode5->type->type_table[cltype20] == idtype21; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4193); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 5168); show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist7; -/* isa nullable TKwend */ -cltype22 = type_nullable_parser_nodes__TKwend.color; -idtype23 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_tkwendnode12->type->table_size) { -var21 = 0; -} else { -var21 = var_tkwendnode12->type->type_table[cltype22] == idtype23; +var22 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall); +{ +parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall(var22, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5); /* Direct call parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall on */ } +var_pexterncallnode1 = var22; +var_node_list = var_pexterncallnode1; +var23 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var24 = parser_work__Parser__go_to(var_p, var23); } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4195); -show_backtrace(1); +{ +parser_work__Parser__push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ } -var24 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var25 = NULL; -var26 = NULL; -var27 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var24, var_pdocnode2, var25, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var26, var27, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -var_pclassdefnode1 = var24; -var_node_list = var_pclassdefnode1; -var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction73#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction73__action(val* self, val* p0) { -parser__ReduceAction73__action(self, p0); +/* method parser#ReduceAction147#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction147__action(val* self, val* p0) { +parser__ReduceAction147__action(self, p0); /* Direct call parser#ReduceAction147#action on */ RET_LABEL:; }