X-Git-Url: http://nitlanguage.org diff --git a/c_src/parser.sep.3.c b/c_src/parser.sep.3.c index 8d7cab4..23b3c73 100644 --- a/c_src/parser.sep.3.c +++ b/c_src/parser.sep.3.c @@ -1,3482 +1,5177 @@ #include "parser.sep.0.h" -/* method parser#Parser#build_reduce_table for (self: Object) */ -void VIRTUAL_parser__Parser__build_reduce_table(val* self) { -parser__Parser__build_reduce_table(self); -RET_LABEL:; -} -/* method parser#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */ -void parser__ComputeProdLocationVisitor__visit(val* self, val* p0) { -val* var_n /* var n: ANode */; -short int var /* : Bool */; +/* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */ +void parser__ReduceAction63__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* var1 /* : Location */; -val* var_loc /* var loc: Location */; -val* var2 /* : Array[Prod] */; -short int var3 /* : Bool */; -short int var4 /* : Bool */; -val* var5 /* : Array[Prod] */; -val* var6 /* : Iterator[nullable Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; -val* var_no /* var no: Prod */; -val* var9 /* : Array[Prod] */; -val* var10 /* : Array[Prod] */; +val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var13 /* : Location */; -val* var14 /* : nullable SourceFile */; -long var15 /* : Int */; -long var16 /* : Int */; -long var17 /* : Int */; -long var18 /* : Int */; -val* var_loco /* var loco: Location */; -val* var19 /* : Array[Prod] */; -val* var20 /* : Iterator[nullable Object] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; -val* var_no23 /* var no: Prod */; -val* var25 /* : Array[Prod] */; +int cltype12; +int idtype13; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; short int var26 /* : Bool */; int cltype27; int idtype28; -val* var29 /* : Array[Prod] */; -val* var30 /* : nullable Location */; -val* var_startl /* var startl: nullable Location */; +val* var29 /* : AMethPropdef */; +val* var30 /* : null */; val* var31 /* : null */; -short int var32 /* : Bool */; -val* var33 /* : nullable Location */; -val* var_endl /* var endl: nullable Location */; +val* var32 /* : null */; +val* var33 /* : null */; val* var34 /* : null */; -short int var35 /* : Bool */; -val* var36 /* : Location */; -val* var37 /* : nullable SourceFile */; -long var38 /* : Int */; -long var39 /* : Int */; -long var40 /* : Int */; -long var41 /* : Int */; -val* var42 /* : Array[Prod] */; -short int var43 /* : Bool */; -short int var44 /* : Bool */; -val* var45 /* : Location */; -val* var46 /* : nullable SourceFile */; -long var47 /* : Int */; -long var48 /* : Int */; -long var49 /* : Int */; -long var50 /* : Int */; -val* var_loc51 /* var loc: Location */; -val* var52 /* : Array[Prod] */; -val* var53 /* : Iterator[nullable Object] */; -short int var54 /* : Bool */; -val* var55 /* : nullable Object */; -val* var_no56 /* var no: Prod */; -val* var58 /* : Array[Prod] */; -val* var59 /* : Array[Prod] */; -var_n = p0; -/* isa Token */ -cltype = type_parser_nodes__Token.color; -idtype = type_parser_nodes__Token.id; -if(cltype >= var_n->type->table_size) { -var = 0; -} else { -var = var_n->type->type_table[cltype] == idtype; -} -if (var){ -var1 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__location]))(var_n) /* location on */; -var_loc = var1; -self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val = var_loc; /* _last_location on */ -var2 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on */ -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 1999); -exit(1); -} -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on */; -var4 = !var3; -if (var4){ -var5 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on */ -if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2000); -exit(1); -} -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on */; -for(;;) { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; -if(!var7) break; -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; -var_no = var8; -var_no->attrs[COLOR_parser__Prod___first_location].val = var_loc; /* _first_location on */ -CONTINUE_label: (void)0; -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; -} -BREAK_label: (void)0; -var9 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on */ -if (var9 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2003); -exit(1); -} -((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var9) /* clear on */; -} else { -} -var10 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var10 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2007); -exit(1); -} -var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var10) /* is_empty on */; -var12 = !var11; -if (var12){ -var13 = NEW_location__Location(&type_location__Location); -var14 = ((val* (*)(val*))(var_loc->class->vft[COLOR_location__Location__file]))(var_loc) /* file on */; -var15 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on */; -var16 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on */; -var17 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on */; -var18 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on */; -((void (*)(val*, val*, long, long, long, long))(var13->class->vft[COLOR_location__Location__init]))(var13, var14, var15, var16, var17, var18) /* init on */; -CHECK_NEW_location__Location(var13); -var_loco = var13; -var19 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var19 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2009); -exit(1); -} -var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on */; -for(;;) { -var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on */; -if(!var21) break; -var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on */; -var_no23 = var22; -((void (*)(val*, val*))(var_no23->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no23, var_loco) /* location= on */; -CONTINUE_label24: (void)0; -((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on */; -} -BREAK_label24: (void)0; -var25 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var25 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2012); -exit(1); -} -((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var25) /* clear on */; -} else { -} -} else { -/* isa Prod */ -cltype27 = type_parser_nodes__Prod.color; -idtype28 = type_parser_nodes__Prod.id; -if(cltype27 >= var_n->type->table_size) { -var26 = 0; -} else { -var26 = var_n->type->type_table[cltype27] == idtype28; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var35 /* : Int */; +long var36 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var26) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2015); -exit(1); +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -var29 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on */ -if (var29 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2016); -exit(1); +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -((void (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var29, var_n) /* add on */; -((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on */; -var30 = var_n->attrs[COLOR_parser__Prod___first_location].val; /* _first_location on */ -var_startl = var30; -var31 = NULL; -if (var_startl == NULL) { -var32 = 0; /* is null */ -} else { -var32 = 1; /* arg is null and recv is not */ +var_nodearraylist7 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -if (var32){ -var33 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val; /* _last_location on */ -var_endl = var33; -var34 = NULL; -if (var_endl == NULL) { -var35 = 0; /* is null */ +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 { -var35 = 1; /* arg is null and recv is not */ -} -if (!var35) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2024); -exit(1); -} -var36 = NEW_location__Location(&type_location__Location); -var37 = ((val* (*)(val*))(var_startl->class->vft[COLOR_location__Location__file]))(var_startl) /* file on */; -var38 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__line_start]))(var_startl) /* line_start on */; -var39 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on */; -var40 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__column_start]))(var_startl) /* column_start on */; -var41 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on */; -((void (*)(val*, val*, long, long, long, long))(var36->class->vft[COLOR_location__Location__init]))(var36, var37, var38, var39, var40, var41) /* init on */; -CHECK_NEW_location__Location(var36); -((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_n, var36) /* location= on */; -var42 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var42 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2028); -exit(1); +var10 = var_pdocnode2->type->type_table[cltype] == idtype; } -var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var42) /* is_empty on */; -var44 = !var43; -if (var44){ -var45 = NEW_location__Location(&type_location__Location); -var46 = ((val* (*)(val*))(var_endl->class->vft[COLOR_location__Location__file]))(var_endl) /* file on */; -var47 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on */; -var48 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on */; -var49 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on */; -var50 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on */; -((void (*)(val*, val*, long, long, long, long))(var45->class->vft[COLOR_location__Location__init]))(var45, var46, var47, var48, var49, var50) /* init on */; -CHECK_NEW_location__Location(var45); -var_loc51 = var45; -var52 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var52 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2030); -exit(1); } -var53 = ((val* (*)(val*))(var52->class->vft[COLOR_abstract_collection__Collection__iterator]))(var52) /* iterator on */; -for(;;) { -var54 = ((short int (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var53) /* is_ok on */; -if(!var54) break; -var55 = ((val* (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__item]))(var53) /* item on */; -var_no56 = var55; -((void (*)(val*, val*))(var_no56->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no56, var_loc51) /* location= on */; -CONTINUE_label57: (void)0; -((void (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__next]))(var53) /* next on */; +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3190); +show_backtrace(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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; +} } -BREAK_label57: (void)0; -var58 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var58 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2034); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3192); +show_backtrace(1); } -((void (*)(val*))(var58->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var58) /* clear on */; +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(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", "parser/parser.nit", 3194); +show_backtrace(1); +} +var_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype18 = type_nullable_parser_nodes__TKwnew.color; +idtype19 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var17 = 1; } else { -var59 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on */ -if (var59 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2038); -exit(1); +if(cltype18 >= var_tkwnewnode7->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwnewnode7->type->type_table[cltype18] == idtype19; } -((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var_n) /* add on */; } +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3196); +show_backtrace(1); } -RET_LABEL:; +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_pmethidnode8->type->table_size) { +var20 = 0; +} else { +var20 = var_pmethidnode8->type->type_table[cltype21] == idtype22; } -/* method parser#ComputeProdLocationVisitor#visit for (self: Object, ANode) */ -void VIRTUAL_parser__ComputeProdLocationVisitor__visit(val* self, val* p0) { -parser__ComputeProdLocationVisitor__visit(self, p0); -RET_LABEL:; } -/* method parser#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */ -void parser__ComputeProdLocationVisitor__init(val* self) { -((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on */; -RET_LABEL:; +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3198); +show_backtrace(1); } -/* method parser#ComputeProdLocationVisitor#init for (self: Object) */ -void VIRTUAL_parser__ComputeProdLocationVisitor__init(val* self) { -parser__ComputeProdLocationVisitor__init(self); -RET_LABEL:; +var_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_psignaturenode9->type->table_size) { +var23 = 0; +} else { +var23 = var_psignaturenode9->type->type_table[cltype24] == idtype25; } -/* method parser#ReduceAction#action for (self: ReduceAction, Parser) */ -void parser__ReduceAction__action(val* self, val* p0) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser.nit", 2048); -exit(1); -RET_LABEL:; } -/* method parser#ReduceAction#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction__action(val* self, val* p0) { -parser__ReduceAction__action(self, p0); -RET_LABEL:; +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3200); +show_backtrace(1); } -/* method parser#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */ -val* parser__ReduceAction__concat(val* self, val* p0, val* p1) { -val* var /* : Array[Object] */; -val* var_l1 /* var l1: Array[Object] */; -val* var_l2 /* var l2: Array[Object] */; -short int var1 /* : Bool */; -var_l1 = p0; -var_l2 = p1; -var1 = ((short int (*)(val*))(var_l1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_l1) /* is_empty on */; -if (var1){ -var = var_l2; -goto RET_LABEL; +var_pexprnode13 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var26 = 1; } else { +if(cltype27 >= var_pexprnode13->type->table_size) { +var26 = 0; +} else { +var26 = var_pexprnode13->type->type_table[cltype27] == idtype28; } -((void (*)(val*, val*))(var_l1->class->vft[COLOR_abstract_collection__Sequence__append]))(var_l1, var_l2) /* append on */; -var = var_l1; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method parser#ReduceAction#concat for (self: Object, Array[Object], Array[Object]): Array[Object] */ -val* VIRTUAL_parser__ReduceAction__concat(val* self, val* p0, val* p1) { -val* var /* : Array[Object] */; -val* var1 /* : Array[Object] */; -var1 = parser__ReduceAction__concat(self, p0, p1); -var = var1; -RET_LABEL:; -return var; +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3202); +show_backtrace(1); } -/* method parser#ReduceAction#init for (self: ReduceAction, Int) */ -void parser__ReduceAction__init(val* self, long p0) { -long var_g /* var g: Int */; -var_g = p0; -self->attrs[COLOR_parser__ReduceAction___goto].l = var_g; /* _goto on */ -RET_LABEL:; +var29 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var30 = NULL; +var31 = NULL; +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var30, var31, var_tkwnewnode7, var_pmethidnode8, var_psignaturenode9, var32, var33, var34, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ } -/* method parser#ReduceAction#init for (self: Object, Int) */ -void VIRTUAL_parser__ReduceAction__init(val* self, long p0) { -parser__ReduceAction__init(self, p0); -RET_LABEL:; +var_ppropdefnode1 = var29; +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 */ } -/* method parser#ReduceAction0#action for (self: ReduceAction0, Parser) */ -void parser__ReduceAction0__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 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var2 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var3 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var4 /* : AModule */; -val* var5 /* : null */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var6 /* : Int */; -long var7 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on */; -CHECK_NEW_array__Array(var1); -var_listnode3 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); -var_listnode4 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode5 = var3; -var4 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -var5 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var4, var5, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var4); -var_pmodulenode1 = var4; -var_node_list = var_pmodulenode1; -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 */; RET_LABEL:; } -/* method parser#ReduceAction0#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction0__action(val* self, val* p0) { -parser__ReduceAction0__action(self, p0); +/* method parser#ReduceAction63#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) { +parser__ReduceAction63__action(self, p0); /* Direct call parser#ReduceAction63#action on */ RET_LABEL:; } -/* method parser#ReduceAction1#action for (self: ReduceAction1, Parser) */ -void parser__ReduceAction1__action(val* self, val* p0) { +/* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */ +void parser__ReduceAction64__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_listnode5 /* var listnode5: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var5 /* : Bool */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var6 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var7 /* : Int */; -long var8 /* : 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_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AMethPropdef */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -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) { -var5 = 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_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_pmoduledeclnode2->type->table_size) { -var5 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var5 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var10 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2087); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3236); +show_backtrace(1); } -var6 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule); -((void (*)(val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var6, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var6); -var_pmodulenode1 = var6; -var_node_list = var_pmodulenode1; -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:; +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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } -/* method parser#ReduceAction1#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction1__action(val* self, val* p0) { -parser__ReduceAction1__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction2#action for (self: ReduceAction2, Parser) */ -void parser__ReduceAction2__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_listnode4 /* var listnode4: 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_listnode3 /* var listnode3: 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 */; -CHECK_NEW_array__Array(var2); -var_listnode4 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode5 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode6 = var4; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var5 = 0; +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3238); +show_backtrace(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_listnode3->type->table_size) { -var5 = 0; +if(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; } else { -var5 = var_listnode3->type->type_table[cltype] == idtype; +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2108); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3240); +show_backtrace(1); } -var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = 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_listnode4, var_listnode5, var_listnode6) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var7); -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_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype18 = type_nullable_parser_nodes__TKwnew.color; +idtype19 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwnewnode7->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwnewnode7->type->type_table[cltype18] == idtype19; } -/* method parser#ReduceAction2#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction2__action(val* self, val* p0) { -parser__ReduceAction2__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */ -void parser__ReduceAction3__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_listnode6 /* var listnode6: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */; -short int var6 /* : 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 */; -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 */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3242); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype21 = type_nullable_parser_nodes__ASignature.color; +idtype22 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var20 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype21 >= var_psignaturenode9->type->table_size) { +var20 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var20 = var_psignaturenode9->type->type_table[cltype21] == idtype22; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2131); -exit(1); +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3244); +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_pannotationsnode10 = var_nodearraylist6; +/* isa nullable AAnnotations */ +cltype24 = type_nullable_parser_nodes__AAnnotations.color; +idtype25 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var23 = 1; } else { -if(cltype8 >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype24 >= var_pannotationsnode10->type->table_size) { +var23 = 0; +} else { +var23 = var_pannotationsnode10->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3246); +show_backtrace(1); +} +var_pexprnode13 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pexprnode13->type->table_size) { +var26 = 0; } else { -var7 = var_listnode3->type->type_table[cltype8] == idtype9; +var26 = var_pexprnode13->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3248); +show_backtrace(1); +} +var29 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var30 = NULL; +var31 = NULL; +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var30, var31, var_tkwnewnode7, var32, var_psignaturenode9, var_pannotationsnode10, var33, var34, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ } +var_ppropdefnode1 = var29; +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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2133); -exit(1); +{ +parser_work__Parser__push(var_p, var36, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var11); -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:; } -/* method parser#ReduceAction3#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction3__action(val* self, val* p0) { -parser__ReduceAction3__action(self, p0); +/* method parser#ReduceAction64#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) { +parser__ReduceAction64__action(self, p0); /* Direct call parser#ReduceAction64#action on */ RET_LABEL:; } -/* method parser#ReduceAction4#action for (self: ReduceAction4, Parser) */ -void parser__ReduceAction4__action(val* self, val* p0) { +/* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */ +void parser__ReduceAction65__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* 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 */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : 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 */; +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_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AMethPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var36 /* : null */; +val* var37 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var38 /* : Int */; +long var39 /* : 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 */; -CHECK_NEW_array__Array(var2); -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode5 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -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; +{ +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_listnode4->type->table_size) { -var5 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; } else { -var5 = var_listnode4->type->type_table[cltype] == idtype; +var11 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2155); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3283); +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 */; -CHECK_NEW_parser_nodes__AModule(var7); -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_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(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; +} else { +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; } -/* 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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3285); +show_backtrace(1); +} +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_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2178); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3287); +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_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype19 = type_nullable_parser_nodes__TKwnew.color; +idtype20 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var18 = 1; } else { -if(cltype8 >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype19 >= var_tkwnewnode7->type->table_size) { +var18 = 0; } else { -var7 = var_listnode4->type->type_table[cltype8] == idtype9; +var18 = var_tkwnewnode7->type->type_table[cltype19] == idtype20; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2180); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3289); +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 */; -CHECK_NEW_parser_nodes__AModule(var11); -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_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype22 = type_nullable_parser_nodes__AMethid.color; +idtype23 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_pmethidnode8->type->table_size) { +var21 = 0; +} else { +var21 = var_pmethidnode8->type->type_table[cltype22] == idtype23; } -/* method parser#ReduceAction5#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction5__action(val* self, val* p0) { -parser__ReduceAction5__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction6#action for (self: ReduceAction6, Parser) */ -void parser__ReduceAction6__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_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 */; -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 */; -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 */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode6 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3291); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype25 = type_nullable_parser_nodes__ASignature.color; +idtype26 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var24 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype25 >= var_psignaturenode9->type->table_size) { +var24 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var24 = var_psignaturenode9->type->type_table[cltype25] == idtype26; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2203); -exit(1); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3293); +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_pannotationsnode10 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype28 = type_nullable_parser_nodes__AAnnotations.color; +idtype29 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var27 = 1; } else { -if(cltype9 >= var_listnode5->type->table_size) { -var8 = 0; +if(cltype28 >= var_pannotationsnode10->type->table_size) { +var27 = 0; } else { -var8 = var_listnode5->type->type_table[cltype9] == idtype10; +var27 = var_pannotationsnode10->type->type_table[cltype28] == idtype29; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2206); -exit(1); +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3295); +show_backtrace(1); +} +var_pexprnode13 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pexprnode13->type->table_size) { +var30 = 0; +} else { +var30 = var_pexprnode13->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3297); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var34 = NULL; +var35 = NULL; +var36 = NULL; +var37 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var34, var35, var_tkwnewnode7, var_pmethidnode8, var_psignaturenode9, var_pannotationsnode10, var36, var37, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var38 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var39 = parser_work__Parser__go_to(var_p, var38); +} +{ +parser_work__Parser__push(var_p, var39, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var12); -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:; } -/* method parser#ReduceAction6#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction6__action(val* self, val* p0) { -parser__ReduceAction6__action(self, p0); +/* method parser#ReduceAction65#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) { +parser__ReduceAction65__action(self, p0); /* Direct call parser#ReduceAction65#action on */ RET_LABEL:; } -/* method parser#ReduceAction7#action for (self: ReduceAction7, Parser) */ -void parser__ReduceAction7__action(val* self, val* p0) { +/* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */ +void parser__ReduceAction66__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_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* 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 var9 /* : 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 */; -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_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_tkwmethnode5 /* var tkwmethnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AMethPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var36 /* : Int */; +long var37 /* : 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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var9 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2230); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3330); +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_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_listnode3->type->table_size) { -var8 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2232); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3332); +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_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(cltype13 >= var_listnode5->type->table_size) { -var12 = 0; +if(cltype14 >= var_pvisibilitynode4->type->table_size) { +var13 = 0; } else { -var12 = var_listnode5->type->type_table[cltype13] == idtype14; +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2235); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3334); +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 */; -CHECK_NEW_parser_nodes__AModule(var16); -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_tkwmethnode5 = var_nodearraylist4; +/* isa nullable TKwmeth */ +cltype17 = type_nullable_parser_nodes__TKwmeth.color; +idtype18 = type_nullable_parser_nodes__TKwmeth.id; +if(var_tkwmethnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwmethnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18; } -/* 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 */; -CHECK_NEW_array__Array(var2); -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -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(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3336); +show_backtrace(1); +} +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype20 = type_nullable_parser_nodes__AMethid.color; +idtype21 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var19 = 1; } else { -if(cltype >= var_listnode5->type->table_size) { -var5 = 0; +if(cltype20 >= var_pmethidnode8->type->table_size) { +var19 = 0; } else { -var5 = var_listnode5->type->type_table[cltype] == idtype; +var19 = var_pmethidnode8->type->type_table[cltype20] == idtype21; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2257); -exit(1); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3338); +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 */; -CHECK_NEW_parser_nodes__AModule(var7); -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_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype23 = type_nullable_parser_nodes__ASignature.color; +idtype24 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_psignaturenode9->type->table_size) { +var22 = 0; +} else { +var22 = var_psignaturenode9->type->type_table[cltype23] == idtype24; } -/* method parser#ReduceAction8#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction8__action(val* self, val* p0) { -parser__ReduceAction8__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction9#action for (self: ReduceAction9, Parser) */ -void parser__ReduceAction9__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_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 */; -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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3340); +show_backtrace(1); +} +var_pexterncallsnode11 = var_nodearraylist7; +/* isa nullable AExternCalls */ +cltype26 = type_nullable_parser_nodes__AExternCalls.color; +idtype27 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var25 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype26 >= var_pexterncallsnode11->type->table_size) { +var25 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var25 = var_pexterncallsnode11->type->type_table[cltype26] == idtype27; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2280); -exit(1); +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3342); +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_pexterncodeblocknode12 = var_nodearraylist8; +/* isa nullable AExternCodeBlock */ +cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var28 = 1; } else { -if(cltype8 >= var_listnode5->type->table_size) { -var7 = 0; +if(cltype29 >= var_pexterncodeblocknode12->type->table_size) { +var28 = 0; } else { -var7 = var_listnode5->type->type_table[cltype8] == idtype9; +var28 = var_pexterncodeblocknode12->type->type_table[cltype29] == idtype30; +} +} +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3344); +show_backtrace(1); } +var31 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var32 = NULL; +var33 = NULL; +var34 = NULL; +var35 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var32, var33, var_pmethidnode8, var_psignaturenode9, var34, var_pexterncallsnode11, var_pexterncodeblocknode12, var35); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var31; +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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2282); -exit(1); +{ +parser_work__Parser__push(var_p, var37, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var11); -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:; } -/* method parser#ReduceAction9#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction9__action(val* self, val* p0) { -parser__ReduceAction9__action(self, p0); +/* method parser#ReduceAction66#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) { +parser__ReduceAction66__action(self, p0); /* Direct call parser#ReduceAction66#action on */ RET_LABEL:; } -/* method parser#ReduceAction10#action for (self: ReduceAction10, Parser) */ -void parser__ReduceAction10__action(val* self, val* p0) { +/* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */ +void parser__ReduceAction67__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_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 var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var32 /* : Bool */; +int cltype33; +int idtype34; +val* var35 /* : AMethPropdef */; +val* var36 /* : null */; +val* var37 /* : null */; +val* var38 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +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_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 */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; -} else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; -} else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist9 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2305); -exit(1); +var_nodearraylist8 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -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_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(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var10 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2308); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3378); +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 */; -CHECK_NEW_parser_nodes__AModule(var12); -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_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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } -/* 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 */; +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3380); +show_backtrace(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(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", "parser/parser.nit", 3382); +show_backtrace(1); +} +var_tkwmethnode5 = var_nodearraylist4; +/* isa nullable TKwmeth */ +cltype18 = type_nullable_parser_nodes__TKwmeth.color; +idtype19 = type_nullable_parser_nodes__TKwmeth.id; +if(var_tkwmethnode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwmethnode5->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3384); +show_backtrace(1); +} +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_pmethidnode8->type->table_size) { +var20 = 0; +} else { +var20 = var_pmethidnode8->type->type_table[cltype21] == idtype22; +} +} +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3386); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_psignaturenode9->type->table_size) { +var23 = 0; +} else { +var23 = var_psignaturenode9->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3388); +show_backtrace(1); +} +var_pannotationsnode10 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype27 = type_nullable_parser_nodes__AAnnotations.color; +idtype28 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pannotationsnode10->type->table_size) { +var26 = 0; +} else { +var26 = var_pannotationsnode10->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3390); +show_backtrace(1); +} +var_pexterncallsnode11 = var_nodearraylist8; +/* isa nullable AExternCalls */ +cltype30 = type_nullable_parser_nodes__AExternCalls.color; +idtype31 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var29 = 1; +} else { +if(cltype30 >= var_pexterncallsnode11->type->table_size) { +var29 = 0; +} else { +var29 = var_pexterncallsnode11->type->type_table[cltype30] == idtype31; +} +} +if (unlikely(!var29)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3392); +show_backtrace(1); +} +var_pexterncodeblocknode12 = var_nodearraylist9; +/* isa nullable AExternCodeBlock */ +cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var32 = 1; +} else { +if(cltype33 >= var_pexterncodeblocknode12->type->table_size) { +var32 = 0; +} else { +var32 = var_pexterncodeblocknode12->type->type_table[cltype33] == idtype34; +} +} +if (unlikely(!var32)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3394); +show_backtrace(1); +} +var35 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var36 = NULL; +var37 = NULL; +var38 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var36, var37, var_pmethidnode8, var_psignaturenode9, var_pannotationsnode10, var_pexterncallsnode11, var_pexterncodeblocknode12, var38); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var35; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction67#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) { +parser__ReduceAction67__action(self, p0); /* Direct call parser#ReduceAction67#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */ +void parser__ReduceAction68__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_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_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tidnode6 /* var tidnode6: 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_pannotationsnode9 /* var pannotationsnode9: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var27 /* : AAttrPropdef */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var30 /* : Int */; +long var31 /* : 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", "parser/parser.nit", 3426); +show_backtrace(1); +} +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_tkwredefnode3->type->table_size) { +var9 = 0; +} else { +var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3428); +show_backtrace(1); +} +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(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", "parser/parser.nit", 3430); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype16 = type_nullable_parser_nodes__TKwvar.color; +idtype17 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= var_tkwvarnode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwvarnode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3432); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype19 = type_nullable_parser_nodes__TId.color; +idtype20 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tidnode6->type->table_size) { +var18 = 0; +} else { +var18 = var_tidnode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3434); +show_backtrace(1); +} +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 { +var21 = var_ptypenode7->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3436); +show_backtrace(1); +} +var_pannotationsnode9 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype25 = type_nullable_parser_nodes__AAnnotations.color; +idtype26 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode9 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_pannotationsnode9->type->table_size) { +var24 = 0; +} else { +var24 = var_pannotationsnode9->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3438); +show_backtrace(1); +} +var27 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var28 = NULL; +var29 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var28, var_pannotationsnode9, var29); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var30 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var31 = parser_work__Parser__go_to(var_p, var30); +} +{ +parser_work__Parser__push(var_p, var31, 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); /* Direct call parser#ReduceAction68#action on */ +RET_LABEL:; +} +/* 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_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* 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 */; +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_listnode6 /* var listnode6: nullable Object */; +val* var_tkwredefnode3 /* var tkwredefnode3: 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_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tidnode6 /* var tidnode6: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pexprnode8 /* var pexprnode8: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AAttrPropdef */; +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_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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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 { +var11 = var_pdocnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3470); +show_backtrace(1); +} +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(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; +} else { +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3472); +show_backtrace(1); +} +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(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; +} else { +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3474); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype19 = type_nullable_parser_nodes__TKwvar.color; +idtype20 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwvarnode5->type->table_size) { +var18 = 0; +} else { +var18 = var_tkwvarnode5->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3476); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype22 = type_nullable_parser_nodes__TId.color; +idtype23 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_tidnode6->type->table_size) { +var21 = 0; +} else { +var21 = var_tidnode6->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3478); +show_backtrace(1); +} +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype25 = type_nullable_parser_nodes__AType.color; +idtype26 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_ptypenode7->type->table_size) { +var24 = 0; +} else { +var24 = var_ptypenode7->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3480); +show_backtrace(1); +} +var_pexprnode8 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype28 = type_nullable_parser_nodes__AExpr.color; +idtype29 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode8 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_pexprnode8->type->table_size) { +var27 = 0; +} else { +var27 = var_pexprnode8->type->type_table[cltype28] == idtype29; +} +} +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3482); +show_backtrace(1); +} +var_pannotationsnode9 = var_nodearraylist10; +/* isa nullable AAnnotations */ +cltype31 = type_nullable_parser_nodes__AAnnotations.color; +idtype32 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode9 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pannotationsnode9->type->table_size) { +var30 = 0; +} else { +var30 = var_pannotationsnode9->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3484); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var34 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var_pexprnode8, var_pannotationsnode9, var34); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var33; +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#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#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_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_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_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tidnode6 /* var tidnode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexprnode10 /* var pexprnode10: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var28 /* : AAttrPropdef */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */; +long var31 /* : Int */; +long var32 /* : 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", "parser/parser.nit", 3514); +show_backtrace(1); +} +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(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; +} else { +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3516); +show_backtrace(1); +} +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; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3518); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype17 = type_nullable_parser_nodes__TKwvar.color; +idtype18 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwvarnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwvarnode5->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3520); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype20 = type_nullable_parser_nodes__TId.color; +idtype21 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_tidnode6->type->table_size) { +var19 = 0; +} else { +var19 = var_tidnode6->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3522); +show_backtrace(1); +} +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype23 = type_nullable_parser_nodes__AType.color; +idtype24 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_ptypenode7->type->table_size) { +var22 = 0; +} else { +var22 = var_ptypenode7->type->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3524); +show_backtrace(1); +} +var_pexprnode10 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype26 = type_nullable_parser_nodes__AExpr.color; +idtype27 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode10 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_pexprnode10->type->table_size) { +var25 = 0; +} else { +var25 = var_pexprnode10->type->type_table[cltype26] == idtype27; +} +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3526); +show_backtrace(1); +} +var28 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var29 = NULL; +var30 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var28, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var29, var30, var_pexprnode10); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var28; +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#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_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_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_tidnode6 /* var tidnode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var_pexprnode10 /* var pexprnode10: nullable Object */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +val* var32 /* : AAttrPropdef */; +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", "parser/parser.nit", 3557); +show_backtrace(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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3559); +show_backtrace(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(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", "parser/parser.nit", 3561); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype18 = type_nullable_parser_nodes__TKwvar.color; +idtype19 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwvarnode5->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwvarnode5->type->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3563); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype21 = type_nullable_parser_nodes__TId.color; +idtype22 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_tidnode6->type->table_size) { +var20 = 0; +} else { +var20 = var_tidnode6->type->type_table[cltype21] == idtype22; +} +} +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3565); +show_backtrace(1); +} +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype24 = type_nullable_parser_nodes__AType.color; +idtype25 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_ptypenode7->type->table_size) { +var23 = 0; +} else { +var23 = var_ptypenode7->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3567); +show_backtrace(1); +} +var_pannotationsnode9 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype27 = type_nullable_parser_nodes__AAnnotations.color; +idtype28 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode9 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pannotationsnode9->type->table_size) { +var26 = 0; +} else { +var26 = var_pannotationsnode9->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3569); +show_backtrace(1); +} +var_pexprnode10 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype30 = type_nullable_parser_nodes__AExpr.color; +idtype31 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode10 == NULL) { +var29 = 1; +} else { +if(cltype30 >= var_pexprnode10->type->table_size) { +var29 = 0; +} else { +var29 = var_pexprnode10->type->type_table[cltype30] == idtype31; +} +} +if (unlikely(!var29)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3571); +show_backtrace(1); +} +var32 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var33 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var32, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var33, var_pannotationsnode9, var_pexprnode10); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var32; +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_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_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_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_tidnode6 /* var tidnode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode10 /* var pexprnode10: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AAttrPropdef */; +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_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", "parser/parser.nit", 3602); +show_backtrace(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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3604); +show_backtrace(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(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", "parser/parser.nit", 3606); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype18 = type_nullable_parser_nodes__TKwvar.color; +idtype19 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwvarnode5->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwvarnode5->type->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3608); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype21 = type_nullable_parser_nodes__TId.color; +idtype22 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_tidnode6->type->table_size) { +var20 = 0; +} else { +var20 = var_tidnode6->type->type_table[cltype21] == idtype22; +} +} +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3610); +show_backtrace(1); +} +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype24 = type_nullable_parser_nodes__AType.color; +idtype25 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_ptypenode7->type->table_size) { +var23 = 0; +} else { +var23 = var_ptypenode7->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3612); +show_backtrace(1); +} +var_pexprnode10 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode10 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pexprnode10->type->table_size) { +var26 = 0; +} else { +var26 = var_pexprnode10->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3614); +show_backtrace(1); +} +var29 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var30 = NULL; +var31 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var30, var31, var_pexprnode10); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var29; +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#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_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_tkwvarnode5 /* var tkwvarnode5: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tidnode6 /* var tidnode6: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_ptypenode7 /* var ptypenode7: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode10 /* var pexprnode10: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AAttrPropdef */; +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_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", "parser/parser.nit", 3646); +show_backtrace(1); +} +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(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; +} else { +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3648); +show_backtrace(1); +} +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(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; +} else { +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3650); +show_backtrace(1); +} +var_tkwvarnode5 = var_nodearraylist4; +/* isa nullable TKwvar */ +cltype19 = type_nullable_parser_nodes__TKwvar.color; +idtype20 = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode5 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwvarnode5->type->table_size) { +var18 = 0; +} else { +var18 = var_tkwvarnode5->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3652); +show_backtrace(1); +} +var_tidnode6 = var_nodearraylist5; +/* isa nullable TId */ +cltype22 = type_nullable_parser_nodes__TId.color; +idtype23 = type_nullable_parser_nodes__TId.id; +if(var_tidnode6 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_tidnode6->type->table_size) { +var21 = 0; +} else { +var21 = var_tidnode6->type->type_table[cltype22] == idtype23; +} +} +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3654); +show_backtrace(1); +} +var_ptypenode7 = var_nodearraylist6; +/* isa nullable AType */ +cltype25 = type_nullable_parser_nodes__AType.color; +idtype26 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode7 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_ptypenode7->type->table_size) { +var24 = 0; +} else { +var24 = var_ptypenode7->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3656); +show_backtrace(1); +} +var_pannotationsnode9 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype28 = type_nullable_parser_nodes__AAnnotations.color; +idtype29 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode9 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_pannotationsnode9->type->table_size) { +var27 = 0; +} else { +var27 = var_pannotationsnode9->type->type_table[cltype28] == idtype29; +} +} +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3658); +show_backtrace(1); +} +var_pexprnode10 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode10 == NULL) { +var30 = 1; +} else { +if(cltype31 >= var_pexprnode10->type->table_size) { +var30 = 0; +} else { +var30 = var_pexprnode10->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3660); +show_backtrace(1); +} +var33 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef); +var34 = NULL; +{ +parser_prod__AAttrPropdef__init_aattrpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwvarnode5, var_tidnode6, var_ptypenode7, var34, var_pannotationsnode9, var_pexprnode10); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on */ +} +var_ppropdefnode1 = var33; +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#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_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_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_tkwinitnode6 /* var tkwinitnode6: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var25 /* : AMethPropdef */; +val* var26 /* : null */; +val* var27 /* : null */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var32 /* : Int */; +long var33 /* : 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", "parser/parser.nit", 3690); +show_backtrace(1); +} +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(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; +} else { +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3692); +show_backtrace(1); +} +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; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3694); +show_backtrace(1); +} +var_tkwinitnode6 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype17 = type_nullable_parser_nodes__TKwinit.color; +idtype18 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode6 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwinitnode6->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwinitnode6->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3696); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype20 = type_nullable_parser_nodes__ASignature.color; +idtype21 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_psignaturenode9->type->table_size) { +var19 = 0; +} else { +var19 = var_psignaturenode9->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3698); +show_backtrace(1); +} +var_pexprnode13 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype23 = type_nullable_parser_nodes__AExpr.color; +idtype24 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_pexprnode13->type->table_size) { +var22 = 0; +} else { +var22 = var_pexprnode13->type->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3700); +show_backtrace(1); +} +var25 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var26 = NULL; +var27 = NULL; +var28 = NULL; +var29 = NULL; +var30 = NULL; +var31 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var26, var_tkwinitnode6, var27, var28, var_psignaturenode9, var29, var30, var31, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var25; +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#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_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_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_tkwinitnode6 /* var tkwinitnode6: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AMethPropdef */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var35 /* : Int */; +long var36 /* : 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", "parser/parser.nit", 3734); +show_backtrace(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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; +} else { +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3736); +show_backtrace(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(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", "parser/parser.nit", 3738); +show_backtrace(1); +} +var_tkwinitnode6 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype18 = type_nullable_parser_nodes__TKwinit.color; +idtype19 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode6 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwinitnode6->type->table_size) { +var17 = 0; +} else { +var17 = var_tkwinitnode6->type->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3740); +show_backtrace(1); +} +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_pmethidnode8->type->table_size) { +var20 = 0; +} else { +var20 = var_pmethidnode8->type->type_table[cltype21] == idtype22; +} +} +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3742); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_psignaturenode9->type->table_size) { +var23 = 0; +} else { +var23 = var_psignaturenode9->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3744); +show_backtrace(1); +} +var_pexprnode13 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var26 = 1; +} else { +if(cltype27 >= var_pexprnode13->type->table_size) { +var26 = 0; +} else { +var26 = var_pexprnode13->type->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3746); +show_backtrace(1); +} +var29 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var30 = NULL; +var31 = NULL; +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var30, var_tkwinitnode6, var31, var_pmethidnode8, var_psignaturenode9, var32, var33, var34, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var29; +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#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_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_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_tkwinitnode6 /* var tkwinitnode6: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var29 /* : AMethPropdef */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var35 /* : Int */; +long var36 /* : 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", "parser/parser.nit", 3780); +show_backtrace(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(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2332); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3782); +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_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(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2334); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3784); +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_tkwinitnode6 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype18 = type_nullable_parser_nodes__TKwinit.color; +idtype19 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode6 == NULL) { +var17 = 1; } else { -if(cltype13 >= var_listnode6->type->table_size) { -var12 = 0; +if(cltype18 >= var_tkwinitnode6->type->table_size) { +var17 = 0; } else { -var12 = var_listnode6->type->type_table[cltype13] == idtype14; +var17 = var_tkwinitnode6->type->type_table[cltype18] == idtype19; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2337); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3786); +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 */; -CHECK_NEW_parser_nodes__AModule(var16); -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_psignaturenode9 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype21 = type_nullable_parser_nodes__ASignature.color; +idtype22 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_psignaturenode9->type->table_size) { +var20 = 0; +} else { +var20 = var_psignaturenode9->type->type_table[cltype21] == idtype22; } -/* method parser#ReduceAction11#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction11__action(val* self, val* p0) { -parser__ReduceAction11__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction12#action for (self: ReduceAction12, Parser) */ -void parser__ReduceAction12__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_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_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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3788); +show_backtrace(1); +} +var_pannotationsnode10 = var_nodearraylist6; +/* isa nullable AAnnotations */ +cltype24 = type_nullable_parser_nodes__AAnnotations.color; +idtype25 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var23 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var6 = 0; +if(cltype24 >= var_pannotationsnode10->type->table_size) { +var23 = 0; } else { -var6 = var_listnode4->type->type_table[cltype] == idtype; +var23 = var_pannotationsnode10->type->type_table[cltype24] == idtype25; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2360); -exit(1); +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3790); +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_pexprnode13 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype27 = type_nullable_parser_nodes__AExpr.color; +idtype28 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var26 = 1; } else { -if(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype27 >= var_pexprnode13->type->table_size) { +var26 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var26 = var_pexprnode13->type->type_table[cltype27] == idtype28; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2363); -exit(1); +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3792); +show_backtrace(1); +} +var29 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var30 = NULL; +var31 = NULL; +var32 = NULL; +var33 = NULL; +var34 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var30, var_tkwinitnode6, var31, var32, var_psignaturenode9, var_pannotationsnode10, var33, var34, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var29; +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var12); -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:; } -/* method parser#ReduceAction12#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction12__action(val* self, val* p0) { -parser__ReduceAction12__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#ReduceAction13#action for (self: ReduceAction13, Parser) */ -void parser__ReduceAction13__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_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 */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var11 /* : 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 */; +val* var_tkwredefnode3 /* var tkwredefnode3: 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_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_tkwinitnode6 /* var tkwinitnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var_pexprnode13 /* var pexprnode13: nullable Object */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +val* var33 /* : AMethPropdef */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var36 /* : null */; +val* var37 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var38 /* : Int */; +long var39 /* : 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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2387); -exit(1); +var_nodearraylist10 = var1; +{ +var2 = 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_nodearraylist9 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } +var_nodearraylist8 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2389); -exit(1); +var_nodearraylist7 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -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; -} else { -if(cltype13 >= var_listnode6->type->table_size) { -var12 = 0; -} else { -var12 = var_listnode6->type->type_table[cltype13] == idtype14; +var_nodearraylist6 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } +var_nodearraylist5 = var6; +{ +var7 = parser_work__Parser__pop(var_p); } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2392); -exit(1); +var_nodearraylist4 = var7; +{ +var8 = parser_work__Parser__pop(var_p); } -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 */; -CHECK_NEW_parser_nodes__AModule(var16); -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_nodearraylist3 = var8; +{ +var9 = parser_work__Parser__pop(var_p); } -/* method parser#ReduceAction13#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction13__action(val* self, val* p0) { -parser__ReduceAction13__action(self, p0); -RET_LABEL:; +var_nodearraylist2 = var9; +{ +var10 = parser_work__Parser__pop(var_p); } -/* method parser#ReduceAction14#action for (self: ReduceAction14, Parser) */ -void parser__ReduceAction14__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_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 */; -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 */; -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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var11 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var11 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2416); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3827); +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 */ +cltype13 = type_nullable_parser_nodes__TKwredef.color; +idtype14 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var12 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype13 >= var_tkwredefnode3->type->table_size) { +var12 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2419); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3829); +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 */ +cltype16 = type_nullable_parser_nodes__AVisibility.color; +idtype17 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var15 = 1; } else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype16 >= var_pvisibilitynode4->type->table_size) { +var15 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2422); -exit(1); +var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; } -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 */; -CHECK_NEW_parser_nodes__AModule(var17); -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:; +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3831); +show_backtrace(1); } -/* 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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_tkwinitnode6 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype19 = type_nullable_parser_nodes__TKwinit.color; +idtype20 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwinitnode6->type->table_size) { +var18 = 0; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +var18 = var_tkwinitnode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3833); +show_backtrace(1); +} +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype22 = type_nullable_parser_nodes__AMethid.color; +idtype23 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_pmethidnode8->type->table_size) { +var21 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var21 = var_pmethidnode8->type->type_table[cltype22] == idtype23; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2447); -exit(1); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3835); +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_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype25 = type_nullable_parser_nodes__ASignature.color; +idtype26 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var24 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype25 >= var_psignaturenode9->type->table_size) { +var24 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var24 = var_psignaturenode9->type->type_table[cltype25] == idtype26; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2449); -exit(1); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3837); +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_pannotationsnode10 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype28 = type_nullable_parser_nodes__AAnnotations.color; +idtype29 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var27 = 1; } else { -if(cltype14 >= var_listnode5->type->table_size) { -var13 = 0; +if(cltype28 >= var_pannotationsnode10->type->table_size) { +var27 = 0; } else { -var13 = var_listnode5->type->type_table[cltype14] == idtype15; +var27 = var_pannotationsnode10->type->type_table[cltype28] == idtype29; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2452); -exit(1); +if (unlikely(!var27)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3839); +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_pexprnode13 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype31 = type_nullable_parser_nodes__AExpr.color; +idtype32 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode13 == NULL) { +var30 = 1; } else { -if(cltype18 >= var_listnode7->type->table_size) { -var17 = 0; +if(cltype31 >= var_pexprnode13->type->table_size) { +var30 = 0; } else { -var17 = var_listnode7->type->type_table[cltype18] == idtype19; +var30 = var_pexprnode13->type->type_table[cltype31] == idtype32; +} +} +if (unlikely(!var30)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3841); +show_backtrace(1); } +var33 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var34 = NULL; +var35 = NULL; +var36 = NULL; +var37 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var34, var_tkwinitnode6, var35, var_pmethidnode8, var_psignaturenode9, var_pannotationsnode10, var36, var37, var_pexprnode13); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var33; +var_node_list = var_ppropdefnode1; +var38 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var39 = parser_work__Parser__go_to(var_p, var38); } -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2455); -exit(1); +{ +parser_work__Parser__push(var_p, var39, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var21); -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#ReduceAction15#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction15__action(val* self, val* p0) { -parser__ReduceAction15__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#ReduceAction16#action for (self: ReduceAction16, Parser) */ -void parser__ReduceAction16__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_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* 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 var8 /* : 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 var9 /* : Bool */; +int cltype10; +int idtype11; +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_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode8 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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_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_listnode6->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var8 = 0; } else { -var6 = var_listnode6->type->type_table[cltype] == idtype; +var8 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2478); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3873); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var8); -var_pclassdefnode5 = var8; -var9 = NULL; -if (var_pclassdefnode5 == NULL) { -var10 = 0; /* is null */ +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 { -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(cltype10 >= var_tkwredefnode3->type->table_size) { +var9 = 0; } else { +var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11; } -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 */; -CHECK_NEW_parser_nodes__AModule(var11); -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(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3875); +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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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 */ +cltype13 = type_nullable_parser_nodes__AVisibility.color; +idtype14 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var12 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; +if(cltype13 >= var_pvisibilitynode4->type->table_size) { +var12 = 0; } else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2507); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3877); +show_backtrace(1); } -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_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(cltype9 >= var_listnode6->type->table_size) { -var8 = 0; +if(cltype16 >= var_tkwtypenode5->type->table_size) { +var15 = 0; } else { -var8 = var_listnode6->type->type_table[cltype9] == idtype10; +var15 = var_tkwtypenode5->type->type_table[cltype16] == idtype17; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2510); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3879); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var12); -var_pclassdefnode5 = var12; -var13 = NULL; -if (var_pclassdefnode5 == NULL) { -var14 = 0; /* is null */ +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 { -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(cltype19 >= var_tclassidnode6->type->table_size) { +var18 = 0; } else { +var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20; } -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 */; -CHECK_NEW_parser_nodes__AModule(var15); -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(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3881); +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 */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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_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(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype22 >= var_ptypenode7->type->table_size) { +var21 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var21 = var_ptypenode7->type->type_table[cltype22] == idtype23; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2539); -exit(1); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3883); +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 */; -CHECK_NEW_array__Array(var8); -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_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(cltype10 >= var_listnode7->type->table_size) { -var9 = 0; +if(cltype25 >= var_pannotationsnode8->type->table_size) { +var24 = 0; } else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +var24 = var_pannotationsnode8->type->type_table[cltype25] == idtype26; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2543); -exit(1); +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3885); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var13); -var_pclassdefnode6 = var13; -var14 = NULL; -if (var_pclassdefnode6 == NULL) { -var15 = 0; /* is null */ -} else { -var15 = 1; /* arg is null and recv is not */ +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 */ } -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; -} else { +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var16); -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#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#ReduceAction19#action for (self: ReduceAction19, Parser) */ -void parser__ReduceAction19__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_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_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 var8 /* : 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 var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var27 /* : AMethPropdef */; +val* var28 /* : null */; +val* var29 /* : null */; +val* var30 /* : null */; +val* var31 /* : null */; +val* var32 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var33 /* : Int */; +long var34 /* : 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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2573); -exit(1); +var_nodearraylist6 = 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; +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(cltype9 >= var_listnode3->type->table_size) { +if(cltype >= var_pdocnode2->type->table_size) { var8 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; +var8 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2575); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3912); +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; -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -CHECK_NEW_array__Array(var12); -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_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(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; +if(cltype10 >= var_tkwredefnode3->type->table_size) { +var9 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2579); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3914); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var17); -var_pclassdefnode6 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ +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 { -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_pvisibilitynode4->type->table_size) { +var12 = 0; } else { +var12 = var_pvisibilitynode4->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 */; -CHECK_NEW_parser_nodes__AModule(var20); -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", "parser/parser.nit", 3916); +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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype16 = type_nullable_parser_nodes__TKwnew.color; +idtype17 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var15 = 1; } else { -if(cltype >= var_listnode4->type->table_size) { -var6 = 0; +if(cltype16 >= var_tkwnewnode7->type->table_size) { +var15 = 0; } else { -var6 = var_listnode4->type->type_table[cltype] == idtype; +var15 = var_tkwnewnode7->type->type_table[cltype16] == idtype17; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2608); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3918); +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 */; -CHECK_NEW_array__Array(var8); -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_psignaturenode9 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype19 = type_nullable_parser_nodes__ASignature.color; +idtype20 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var18 = 1; } else { -if(cltype10 >= var_listnode7->type->table_size) { -var9 = 0; +if(cltype19 >= var_psignaturenode9->type->table_size) { +var18 = 0; } else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +var18 = var_psignaturenode9->type->type_table[cltype19] == idtype20; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2612); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3920); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var13); -var_pclassdefnode6 = var13; -var14 = NULL; -if (var_pclassdefnode6 == NULL) { -var15 = 0; /* is null */ +var_pexterncallsnode11 = var_nodearraylist6; +/* isa nullable AExternCalls */ +cltype22 = type_nullable_parser_nodes__AExternCalls.color; +idtype23 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var21 = 1; +} else { +if(cltype22 >= var_pexterncallsnode11->type->table_size) { +var21 = 0; } else { -var15 = 1; /* arg is null and recv is not */ +var21 = var_pexterncallsnode11->type->type_table[cltype22] == idtype23; +} } -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3922); +show_backtrace(1); +} +var_pexterncodeblocknode12 = var_nodearraylist7; +/* isa nullable AExternCodeBlock */ +cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_pexterncodeblocknode12->type->table_size) { +var24 = 0; } else { +var24 = var_pexterncodeblocknode12->type->type_table[cltype25] == idtype26; +} +} +if (unlikely(!var24)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3924); +show_backtrace(1); +} +var27 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var28 = NULL; +var29 = NULL; +var30 = NULL; +var31 = NULL; +var32 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var28, var29, var_tkwnewnode7, var30, var_psignaturenode9, var31, var_pexterncallsnode11, var_pexterncodeblocknode12, var32); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var27; +var_node_list = var_ppropdefnode1; +var33 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var34 = parser_work__Parser__go_to(var_p, var33); +} +{ +parser_work__Parser__push(var_p, var34, 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_listnode5, var_listnode9) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var16); -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); +/* 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#ReduceAction21#action for (self: ReduceAction21, Parser) */ -void parser__ReduceAction21__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_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* 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 */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var9 /* : 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 */; +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* var17 /* : ATopClassdef */; -val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */; -val* var18 /* : null */; +val* var_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pmethidnode8 /* var pmethidnode8: 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_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AMethPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var36 /* : Int */; +long var37 /* : 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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var9 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2642); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3957); +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_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_listnode4->type->table_size) { -var8 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var8 = var_listnode4->type->type_table[cltype9] == idtype10; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2644); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3959); +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 */; -CHECK_NEW_array__Array(var12); -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_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_listnode7->type->table_size) { +if(cltype14 >= var_pvisibilitynode4->type->table_size) { var13 = 0; } else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2648); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3961); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var17); -var_pclassdefnode6 = var17; -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ +var_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype17 = type_nullable_parser_nodes__TKwnew.color; +idtype18 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_tkwnewnode7->type->table_size) { +var16 = 0; } else { -var19 = 1; /* arg is null and recv is not */ +var16 = var_tkwnewnode7->type->type_table[cltype17] == idtype18; +} } -if (var19){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3963); +show_backtrace(1); +} +var_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype20 = type_nullable_parser_nodes__AMethid.color; +idtype21 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_pmethidnode8->type->table_size) { +var19 = 0; } else { +var19 = var_pmethidnode8->type->type_table[cltype20] == idtype21; } -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 */; -CHECK_NEW_parser_nodes__AModule(var20); -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); -RET_LABEL:; +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3965); +show_backtrace(1); } -/* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */ -void parser__ReduceAction22__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_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 */; -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* 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 */; -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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype23 = type_nullable_parser_nodes__ASignature.color; +idtype24 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var22 = 1; } else { -if(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype23 >= var_psignaturenode9->type->table_size) { +var22 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var22 = var_psignaturenode9->type->type_table[cltype23] == idtype24; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2678); -exit(1); +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3967); +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_pexterncallsnode11 = var_nodearraylist7; +/* isa nullable AExternCalls */ +cltype26 = type_nullable_parser_nodes__AExternCalls.color; +idtype27 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var25 = 1; } else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype26 >= var_pexterncallsnode11->type->table_size) { +var25 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var25 = var_pexterncallsnode11->type->type_table[cltype26] == idtype27; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2681); -exit(1); +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3969); +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 */; -CHECK_NEW_array__Array(var13); -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_pexterncodeblocknode12 = var_nodearraylist8; +/* isa nullable AExternCodeBlock */ +cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var28 = 1; } else { -if(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype29 >= var_pexterncodeblocknode12->type->table_size) { +var28 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var28 = var_pexterncodeblocknode12->type->type_table[cltype29] == idtype30; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2685); -exit(1); +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 3971); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var18); -var_pclassdefnode7 = var18; -var19 = NULL; -if (var_pclassdefnode7 == NULL) { -var20 = 0; /* is null */ -} else { -var20 = 1; /* arg is null and recv is not */ +var31 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var32 = NULL; +var33 = NULL; +var34 = NULL; +var35 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var32, var33, var_tkwnewnode7, var_pmethidnode8, var_psignaturenode9, var34, var_pexterncallsnode11, var_pexterncodeblocknode12, var35); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ } -if (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +var_ppropdefnode1 = var31; +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var21); -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#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#ReduceAction23#action for (self: ReduceAction23, Parser) */ -void parser__ReduceAction23__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_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_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 var9 /* : 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 */; +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* 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* var23 /* : null */; -short int var24 /* : Bool */; -val* var25 /* : AModule */; -val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */; -long var26 /* : Int */; -long var27 /* : Int */; +val* var_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var31 /* : AMethPropdef */; +val* var32 /* : null */; +val* var33 /* : null */; +val* var34 /* : null */; +val* var35 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +long var36 /* : Int */; +long var37 /* : 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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_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_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var9 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var9 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2716); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4004); +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 */ +cltype11 = type_nullable_parser_nodes__TKwredef.color; +idtype12 = type_nullable_parser_nodes__TKwredef.id; +if(var_tkwredefnode3 == NULL) { +var10 = 1; } else { -if(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype11 >= var_tkwredefnode3->type->table_size) { +var10 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2718); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4006); +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 */ +cltype14 = type_nullable_parser_nodes__AVisibility.color; +idtype15 = type_nullable_parser_nodes__AVisibility.id; +if(var_pvisibilitynode4 == NULL) { +var13 = 1; } else { -if(cltype14 >= var_listnode5->type->table_size) { +if(cltype14 >= var_pvisibilitynode4->type->table_size) { var13 = 0; } else { -var13 = var_listnode5->type->type_table[cltype14] == idtype15; +var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2721); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4008); +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 */; -CHECK_NEW_array__Array(var17); -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_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype17 = type_nullable_parser_nodes__TKwnew.color; +idtype18 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var16 = 1; } else { -if(cltype19 >= var_listnode8->type->table_size) { -var18 = 0; +if(cltype17 >= var_tkwnewnode7->type->table_size) { +var16 = 0; +} else { +var16 = var_tkwnewnode7->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4010); +show_backtrace(1); +} +var_psignaturenode9 = var_nodearraylist5; +/* isa nullable ASignature */ +cltype20 = type_nullable_parser_nodes__ASignature.color; +idtype21 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var19 = 1; +} else { +if(cltype20 >= var_psignaturenode9->type->table_size) { +var19 = 0; } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; +var19 = var_psignaturenode9->type->type_table[cltype20] == idtype21; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2725); -exit(1); +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4012); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var22); -var_pclassdefnode7 = var22; -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ +var_pannotationsnode10 = var_nodearraylist6; +/* isa nullable AAnnotations */ +cltype23 = type_nullable_parser_nodes__AAnnotations.color; +idtype24 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var22 = 1; } else { -var24 = 1; /* arg is null and recv is not */ +if(cltype23 >= var_pannotationsnode10->type->table_size) { +var22 = 0; +} else { +var22 = var_pannotationsnode10->type->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4014); +show_backtrace(1); +} +var_pexterncallsnode11 = var_nodearraylist7; +/* isa nullable AExternCalls */ +cltype26 = type_nullable_parser_nodes__AExternCalls.color; +idtype27 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_pexterncallsnode11->type->table_size) { +var25 = 0; +} else { +var25 = var_pexterncallsnode11->type->type_table[cltype26] == idtype27; +} } -if (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4016); +show_backtrace(1); +} +var_pexterncodeblocknode12 = var_nodearraylist8; +/* isa nullable AExternCodeBlock */ +cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var28 = 1; +} else { +if(cltype29 >= var_pexterncodeblocknode12->type->table_size) { +var28 = 0; } else { +var28 = var_pexterncodeblocknode12->type->type_table[cltype29] == idtype30; +} +} +if (unlikely(!var28)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4018); +show_backtrace(1); +} +var31 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var32 = NULL; +var33 = NULL; +var34 = NULL; +var35 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var32, var33, var_tkwnewnode7, var34, var_psignaturenode9, var_pannotationsnode10, var_pexterncallsnode11, var_pexterncodeblocknode12, var35); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var31; +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var25); -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); +/* 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#ReduceAction24#action for (self: ReduceAction24, Parser) */ -void parser__ReduceAction24__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_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_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 */; +val* var_pdocnode2 /* var pdocnode2: nullable Object */; +short int var10 /* : 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 */; +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_tkwnewnode7 /* var tkwnewnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pmethidnode8 /* var pmethidnode8: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_psignaturenode9 /* var psignaturenode9: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var_pexterncallsnode11 /* var pexterncallsnode11: nullable Object */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +val* var_pexterncodeblocknode12 /* var pexterncodeblocknode12: nullable Object */; +short int var32 /* : Bool */; +int cltype33; +int idtype34; +val* var35 /* : AMethPropdef */; +val* var36 /* : null */; +val* var37 /* : null */; +val* var38 /* : null */; +val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMethPropdef */; +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_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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; +{ +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_listnode5->type->table_size) { -var6 = 0; +if(cltype >= var_pdocnode2->type->table_size) { +var10 = 0; } else { -var6 = var_listnode5->type->type_table[cltype] == idtype; +var10 = var_pdocnode2->type->type_table[cltype] == idtype; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2754); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4052); +show_backtrace(1); } -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_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_listnode7->type->table_size) { -var8 = 0; +if(cltype12 >= var_tkwredefnode3->type->table_size) { +var11 = 0; } else { -var8 = var_listnode7->type->type_table[cltype9] == idtype10; +var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2757); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4054); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var12); -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_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(cltype15 >= var_pvisibilitynode4->type->table_size) { +var14 = 0; } else { -var15 = 1; /* arg is null and recv is not */ +var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +} } -if (var15){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4056); +show_backtrace(1); +} +var_tkwnewnode7 = var_nodearraylist4; +/* isa nullable TKwnew */ +cltype18 = type_nullable_parser_nodes__TKwnew.color; +idtype19 = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode7 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_tkwnewnode7->type->table_size) { +var17 = 0; } else { +var17 = var_tkwnewnode7->type->type_table[cltype18] == idtype19; } -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 */; -CHECK_NEW_parser_nodes__AModule(var16); -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); -RET_LABEL:; +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4058); +show_backtrace(1); } -/* method parser#ReduceAction25#action for (self: ReduceAction25, Parser) */ -void parser__ReduceAction25__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 */; -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 */; -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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_pmethidnode8 = var_nodearraylist5; +/* isa nullable AMethid */ +cltype21 = type_nullable_parser_nodes__AMethid.color; +idtype22 = type_nullable_parser_nodes__AMethid.id; +if(var_pmethidnode8 == NULL) { +var20 = 1; } else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype21 >= var_pmethidnode8->type->table_size) { +var20 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var20 = var_pmethidnode8->type->type_table[cltype21] == idtype22; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2788); -exit(1); +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4060); +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_psignaturenode9 = var_nodearraylist6; +/* isa nullable ASignature */ +cltype24 = type_nullable_parser_nodes__ASignature.color; +idtype25 = type_nullable_parser_nodes__ASignature.id; +if(var_psignaturenode9 == NULL) { +var23 = 1; } else { -if(cltype9 >= var_listnode5->type->table_size) { -var8 = 0; +if(cltype24 >= var_psignaturenode9->type->table_size) { +var23 = 0; } else { -var8 = var_listnode5->type->type_table[cltype9] == idtype10; +var23 = var_psignaturenode9->type->type_table[cltype24] == idtype25; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2790); -exit(1); +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4062); +show_backtrace(1); } -var11 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on */; -CHECK_NEW_array__Array(var11); -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_pannotationsnode10 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype27 = type_nullable_parser_nodes__AAnnotations.color; +idtype28 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode10 == NULL) { +var26 = 1; } else { -if(cltype13 >= var_listnode7->type->table_size) { -var12 = 0; +if(cltype27 >= var_pannotationsnode10->type->table_size) { +var26 = 0; } else { -var12 = var_listnode7->type->type_table[cltype13] == idtype14; +var26 = var_pannotationsnode10->type->type_table[cltype27] == idtype28; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2793); -exit(1); +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4064); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var16); -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_pexterncallsnode11 = var_nodearraylist8; +/* isa nullable AExternCalls */ +cltype30 = type_nullable_parser_nodes__AExternCalls.color; +idtype31 = type_nullable_parser_nodes__AExternCalls.id; +if(var_pexterncallsnode11 == NULL) { +var29 = 1; } else { -var19 = 1; /* arg is null and recv is not */ +if(cltype30 >= var_pexterncallsnode11->type->table_size) { +var29 = 0; +} else { +var29 = var_pexterncallsnode11->type->type_table[cltype30] == idtype31; +} } -if (var19){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on */; +if (unlikely(!var29)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4066); +show_backtrace(1); +} +var_pexterncodeblocknode12 = var_nodearraylist9; +/* isa nullable AExternCodeBlock */ +cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color; +idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id; +if(var_pexterncodeblocknode12 == NULL) { +var32 = 1; +} else { +if(cltype33 >= var_pexterncodeblocknode12->type->table_size) { +var32 = 0; } else { +var32 = var_pexterncodeblocknode12->type->type_table[cltype33] == idtype34; +} +} +if (unlikely(!var32)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4068); +show_backtrace(1); +} +var35 = NEW_parser_nodes__AMethPropdef(&type_parser_nodes__AMethPropdef); +var36 = NULL; +var37 = NULL; +var38 = NULL; +{ +parser_prod__AMethPropdef__init_amethpropdef(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var36, var37, var_tkwnewnode7, var_pmethidnode8, var_psignaturenode9, var_pannotationsnode10, var_pexterncallsnode11, var_pexterncodeblocknode12, var38); /* Direct call parser_prod#AMethPropdef#init_amethpropdef on */ +} +var_ppropdefnode1 = var35; +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var20); -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); +/* 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#ReduceAction26#action for (self: ReduceAction26, Parser) */ -void parser__ReduceAction26__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* 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 */; -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 */; +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_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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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; -} -} -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2824); -exit(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; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2827); -exit(1); -} -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -CHECK_NEW_array__Array(var12); -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; -} else { -if(cltype14 >= var_listnode8->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode8->type->type_table[cltype14] == idtype15; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2830); -exit(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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var17); -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 */ +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 (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var4, 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 */; -CHECK_NEW_parser_nodes__AModule(var21); -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#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#ReduceAction27#action for (self: ReduceAction27, Parser) */ -void parser__ReduceAction27__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 */; @@ -3488,173 +5183,46 @@ 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 */; -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* 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_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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2862); -exit(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; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2864); -exit(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; -} else { -if(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2867); -exit(1); -} -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; -CHECK_NEW_array__Array(var16); -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; -} else { -if(cltype18 >= var_listnode8->type->table_size) { -var17 = 0; -} else { -var17 = var_listnode8->type->type_table[cltype18] == idtype19; +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2870); -exit(1); +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var21); -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 */ +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); } -if (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var25); -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); +/* 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#ReduceAction28#action for (self: ReduceAction28, Parser) */ -void parser__ReduceAction28__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 */; @@ -3664,2257 +5232,1416 @@ 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 */; +val* var_pannotationsnode1 /* var pannotationsnode1: 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_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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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; -} else { -if(cltype >= var_listnode4->type->table_size) { -var7 = 0; -} else { -var7 = var_listnode4->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2901); -exit(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; +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } +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 (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2904); -exit(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -CHECK_NEW_array__Array(var12); -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; -} else { -if(cltype14 >= var_listnode8->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode8->type->type_table[cltype14] == idtype15; +RET_LABEL:; } +/* 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:; } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2907); -exit(1); +/* 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 /* : 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 */ } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var17); -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 */ +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); } -if (var20){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var4, 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 */; -CHECK_NEW_parser_nodes__AModule(var21); -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#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#ReduceAction29#action for (self: ReduceAction29, Parser) */ -void parser__ReduceAction29__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_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_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_tkwpublicnode2 /* var tkwpublicnode2: nullable Object */; +short int var3 /* : 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* 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* 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 */; -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 */; -CHECK_NEW_array__Array(var5); -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2939); -exit(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; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2941); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -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_nodearraylist1 = var2; +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(cltype14 >= var_listnode6->type->table_size) { -var13 = 0; +if(cltype >= var_tkwpublicnode2->type->table_size) { +var3 = 0; } else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +var3 = var_tkwpublicnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2944); -exit(1); -} -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; -CHECK_NEW_array__Array(var16); -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; -} else { -if(cltype18 >= var_listnode8->type->table_size) { -var17 = 0; -} else { -var17 = var_listnode8->type->type_table[cltype18] == idtype19; -} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4146); +show_backtrace(1); } -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2947); -exit(1); +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 */ } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var21); -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 */ +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 (var24){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var25); -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); +/* 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#ReduceAction30#action for (self: ReduceAction30, Parser) */ -void parser__ReduceAction30__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 */; 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_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_tkwprivatenode2 /* var tkwprivatenode2: nullable Object */; +short int var3 /* : 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 */; +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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2979); -exit(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; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2982); -exit(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_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(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; +if(cltype >= var_tkwprivatenode2->type->table_size) { +var3 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; -} +var3 = var_tkwprivatenode2->type->type_table[cltype] == idtype; } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2985); -exit(1); -} -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -CHECK_NEW_array__Array(var17); -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; -} else { -if(cltype19 >= var_listnode9->type->table_size) { -var18 = 0; -} else { -var18 = var_listnode9->type->type_table[cltype19] == idtype20; } +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4162); +show_backtrace(1); } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2988); -exit(1); +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 */ } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var22); -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 */ +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 (var25){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var6, 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 */; -CHECK_NEW_parser_nodes__AModule(var26); -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#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#ReduceAction31#action for (self: ReduceAction31, Parser) */ -void parser__ReduceAction31__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_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* var_tkwprotectednode2 /* var tkwprotectednode2: nullable Object */; +short int var3 /* : 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* var21 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode9 /* var listnode9: 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* 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_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 */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3021); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = 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; +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(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; +if(cltype >= var_tkwprotectednode2->type->table_size) { +var3 = 0; } else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var3 = var_tkwprotectednode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3023); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4178); +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; +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 (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3026); -exit(1); +{ +parser_work__Parser__push(var_p, var6, 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#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#ReduceAction92#action for (self: ReduceAction92, Parser) */ +void parser__ReduceAction92__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); } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3029); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -var21 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on */; -CHECK_NEW_array__Array(var21); -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_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(cltype23 >= var_listnode9->type->table_size) { -var22 = 0; +if(cltype >= var_tkwintrudenode2->type->table_size) { +var3 = 0; } else { -var22 = var_listnode9->type->type_table[cltype23] == idtype24; +var3 = var_tkwintrudenode2->type->type_table[cltype] == idtype; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3032); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4194); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var26); -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 */ -} else { -var29 = 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 (var29){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var30); -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); +/* method parser#ReduceAction92#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction92__action(val* self, val* p0) { +parser__ReduceAction92__action(self, p0); /* Direct call parser#ReduceAction92#action on */ RET_LABEL:; } -/* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */ -void parser__ReduceAction32__action(val* self, val* p0) { +/* method parser#ReduceAction93#action for (self: ReduceAction93, Parser) */ +void parser__ReduceAction93__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 */; +val* var_tplusnode2 /* var tplusnode2: nullable Object */; +short int var2 /* : 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 */; +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 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var1; -var2 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); -var_listnode3 = var2; -var3 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -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_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(cltype >= var_pclassdefnode5->type->table_size) { -var5 = 0; +if(cltype >= var_tplusnode2->type->table_size) { +var2 = 0; } else { -var5 = var_pclassdefnode5->type->type_table[cltype] == idtype; +var2 = var_tplusnode2->type->type_table[cltype] == idtype; } } -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3061); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4209); +show_backtrace(1); } -var6 = NULL; -if (var_pclassdefnode5 == NULL) { -var7 = 0; /* is null */ -} else { -var7 = 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 (var7){ -((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var8); -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); +/* method parser#ReduceAction93#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction93__action(val* self, val* p0) { +parser__ReduceAction93__action(self, p0); /* Direct call parser#ReduceAction93#action on */ RET_LABEL:; } -/* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */ -void parser__ReduceAction33__action(val* self, val* p0) { +/* 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_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 */; +val* var_tminusnode2 /* var tminusnode2: nullable Object */; +short int var2 /* : 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 */; +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_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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; -} else { -if(cltype >= var_pmoduledeclnode2->type->table_size) { -var6 = 0; -} else { -var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3086); -exit(1); +{ +var1 = parser_work__Parser__pop(var_p); } -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_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(cltype8 >= var_pclassdefnode5->type->table_size) { -var7 = 0; +if(cltype >= var_tminusnode2->type->table_size) { +var2 = 0; } else { -var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9; +var2 = var_tminusnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3088); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4224); +show_backtrace(1); } -var10 = NULL; -if (var_pclassdefnode5 == NULL) { -var11 = 0; /* is null */ -} else { -var11 = 1; /* arg is null and recv is not */ +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 */ } -if (var11){ -((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var12); -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#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#ReduceAction34#action for (self: ReduceAction34, Parser) */ -void parser__ReduceAction34__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 */; 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 */; +val* var_tstarnode2 /* var tstarnode2: nullable Object */; +short int var2 /* : 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 */; -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 */; -CHECK_NEW_array__Array(var3); -var_listnode4 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; -} else { -if(cltype >= var_listnode3->type->table_size) { -var6 = 0; -} else { -var6 = var_listnode3->type->type_table[cltype] == idtype; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3113); -exit(1); +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); } -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_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(cltype9 >= var_pclassdefnode6->type->table_size) { -var8 = 0; +if(cltype >= var_tstarnode2->type->table_size) { +var2 = 0; } else { -var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10; +var2 = var_tstarnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3116); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4239); +show_backtrace(1); } -var11 = NULL; -if (var_pclassdefnode6 == NULL) { -var12 = 0; /* is null */ -} else { -var12 = 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 (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var13); -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); +/* 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#ReduceAction35#action for (self: ReduceAction35, Parser) */ -void parser__ReduceAction35__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_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 */; +val* var_tstarstarnode2 /* var tstarstarnode2: nullable Object */; +short int var2 /* : 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 */; +val* var3 /* : AStarstarMethid */; +val* var_pmethidnode1 /* var pmethidnode1: nullable AStarstarMethid */; +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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3142); -exit(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_nodearraylist1 = var1; +var_tstarstarnode2 = var_nodearraylist1; +/* isa nullable TStarstar */ +cltype = type_nullable_parser_nodes__TStarstar.color; +idtype = type_nullable_parser_nodes__TStarstar.id; +if(var_tstarstarnode2 == NULL) { +var2 = 1; } else { -if(cltype9 >= var_listnode3->type->table_size) { -var8 = 0; +if(cltype >= var_tstarstarnode2->type->table_size) { +var2 = 0; } else { -var8 = var_listnode3->type->type_table[cltype9] == idtype10; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3144); -exit(1); +var2 = var_tstarstarnode2->type->type_table[cltype] == idtype; } -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; -} else { -if(cltype13 >= var_pclassdefnode6->type->table_size) { -var12 = 0; -} else { -var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14; } +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4254); +show_backtrace(1); } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3147); -exit(1); +var3 = NEW_parser_nodes__AStarstarMethid(&type_parser_nodes__AStarstarMethid); +{ +parser_prod__AStarstarMethid__init_astarstarmethid(var3, var_tstarstarnode2); /* Direct call parser_prod#AStarstarMethid#init_astarstarmethid on */ } -var15 = NULL; -if (var_pclassdefnode6 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 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 (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_listnode4, var_listnode5, var_listnode7) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var17); -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#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#ReduceAction36#action for (self: ReduceAction36, Parser) */ -void parser__ReduceAction36__action(val* self, val* p0) { +/* 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 /* : 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 */; +val* var_tslashnode2 /* var tslashnode2: nullable Object */; +short int var2 /* : 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* 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_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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode5 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3172); -exit(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; +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(cltype9 >= var_pclassdefnode6->type->table_size) { -var8 = 0; +if(cltype >= var_tslashnode2->type->table_size) { +var2 = 0; } else { -var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10; +var2 = var_tslashnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3175); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4269); +show_backtrace(1); } -var11 = NULL; -if (var_pclassdefnode6 == NULL) { -var12 = 0; /* is null */ -} else { -var12 = 1; /* arg is null and recv is not */ +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 */ } -if (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var13); -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#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#ReduceAction37#action for (self: ReduceAction37, Parser) */ -void parser__ReduceAction37__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 */; 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 */; +val* var_tpercentnode2 /* var tpercentnode2: nullable Object */; +short int var2 /* : 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* 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 = ((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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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(cltype >= var_pmoduledeclnode2->type->table_size) { -var7 = 0; +if(cltype >= var_tpercentnode2->type->table_size) { +var2 = 0; } else { -var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tpercentnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3201); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4284); +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; -} else { -if(cltype9 >= var_listnode4->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode4->type->type_table[cltype9] == idtype10; +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 */ } +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 (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3203); -exit(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -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; +RET_LABEL:; +} +/* 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#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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_teqnode2 /* var teqnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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 = 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(cltype13 >= var_pclassdefnode6->type->table_size) { -var12 = 0; +if(cltype >= var_teqnode2->type->table_size) { +var2 = 0; } else { -var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14; +var2 = var_teqnode2->type->type_table[cltype] == idtype; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3206); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4299); +show_backtrace(1); } -var15 = NULL; -if (var_pclassdefnode6 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 1; /* arg is null and recv is not */ +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 */ } -if (var16){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var17); -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#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#ReduceAction38#action for (self: ReduceAction38, Parser) */ -void parser__ReduceAction38__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* 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_tnenode2 /* var tnenode2: nullable Object */; +short int var2 /* : 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* 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 = ((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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode6 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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(cltype >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype >= var_tnenode2->type->table_size) { +var2 = 0; } else { -var7 = var_listnode3->type->type_table[cltype] == idtype; +var2 = var_tnenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3232); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4314); +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; -} else { -if(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; -} else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +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 */ } +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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3235); -exit(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_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; +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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tlenode2 /* var tlenode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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 = parser_work__Parser__pop(var_p); +} +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(cltype14 >= var_pclassdefnode7->type->table_size) { -var13 = 0; +if(cltype >= var_tlenode2->type->table_size) { +var2 = 0; } else { -var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15; +var2 = var_tlenode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3238); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4329); +show_backtrace(1); } -var16 = NULL; -if (var_pclassdefnode7 == NULL) { -var17 = 0; /* is null */ -} else { -var17 = 1; /* arg is null and recv is not */ +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 */ } -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_listnode4, var_listnode6, var_listnode8) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var18); -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#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#ReduceAction39#action for (self: ReduceAction39, Parser) */ -void parser__ReduceAction39__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_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_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* 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 = ((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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_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(cltype >= var_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tgenode2->type->table_size) { +var2 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var2 = var_tgenode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3265); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4344); +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__AGeMethid(&type_parser_nodes__AGeMethid); +{ +parser_prod__AGeMethid__init_agemethid(var3, var_tgenode2); /* Direct call parser_prod#AGeMethid#init_agemethid 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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3267); -exit(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_listnode5 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var13 = 0; -} else { -if(cltype14 >= var_listnode5->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode5->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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3270); -exit(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_tltnode2 /* var tltnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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 = parser_work__Parser__pop(var_p); } -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_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(cltype18 >= var_pclassdefnode7->type->table_size) { -var17 = 0; +if(cltype >= var_tltnode2->type->table_size) { +var2 = 0; } else { -var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19; +var2 = var_tltnode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3273); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4359); +show_backtrace(1); } -var20 = NULL; -if (var_pclassdefnode7 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +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 */ } -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_listnode6, var_listnode8) /* init_amodule on */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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#ReduceAction40#action for (self: ReduceAction40, Parser) */ -void parser__ReduceAction40__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_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_tgtnode2 /* var tgtnode2: nullable Object */; +short int var2 /* : 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* 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 = ((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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -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; -} else { -if(cltype >= var_listnode5->type->table_size) { -var6 = 0; -} else { -var6 = var_listnode5->type->type_table[cltype] == idtype; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3298); -exit(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; +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(cltype8 >= var_pclassdefnode6->type->table_size) { -var7 = 0; +if(cltype >= var_tgtnode2->type->table_size) { +var2 = 0; } else { -var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9; +var2 = var_tgtnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3300); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4374); +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 */ +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 */ } -if (var12){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var13); -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#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#ReduceAction41#action for (self: ReduceAction41, Parser) */ -void parser__ReduceAction41__action(val* self, val* p0) { +/* 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_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_listnode7 /* var listnode7: 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* 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* 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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3327); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4389); +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; +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 (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3329); -exit(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -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; +RET_LABEL:; +} +/* 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#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_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(cltype12 >= var_pclassdefnode6->type->table_size) { -var11 = 0; +if(cltype >= var_tggnode2->type->table_size) { +var2 = 0; } else { -var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13; +var2 = var_tggnode2->type->type_table[cltype] == idtype; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3331); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4404); +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 */ +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 */ } -if (var16){ -((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var17); -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#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:; } -/* method parser#ReduceAction42#action for (self: ReduceAction42, Parser) */ -void parser__ReduceAction42__action(val* self, val* p0) { +/* 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_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_tobranode2 /* var tobranode2: 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* 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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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; -} 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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3358); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -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_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(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; +if(cltype >= var_tobranode2->type->table_size) { +var3 = 0; } else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var3 = var_tobranode2->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3361); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4420); +show_backtrace(1); } -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; +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(cltype13 >= var_pclassdefnode7->type->table_size) { -var12 = 0; +if(cltype5 >= var_tcbranode3->type->table_size) { +var4 = 0; } else { -var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14; +var4 = var_tcbranode3->type->type_table[cltype5] == idtype6; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3363); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4422); +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 */ +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 */ } -if (var17){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +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); +} +{ +parser_work__Parser__push(var_p, var9, 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 */; -CHECK_NEW_parser_nodes__AModule(var18); -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#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#ReduceAction43#action for (self: ReduceAction43, Parser) */ -void parser__ReduceAction43__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_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_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* 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 /* : 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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3391); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4438); +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); +} +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ +} +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:; } +/* 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_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); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3393); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -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_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_listnode6->type->table_size) { -var13 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3396); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4454); +show_backtrace(1); } -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_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(cltype17 >= var_pclassdefnode7->type->table_size) { -var16 = 0; +if(cltype5 >= var_tassignnode3->type->table_size) { +var4 = 0; } else { -var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18; +var4 = var_tassignnode3->type->type_table[cltype5] == idtype6; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3398); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4456); +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 */ +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 */ } -if (var21){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +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); +} +{ +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); -((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 */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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#ReduceAction44#action for (self: ReduceAction44, Parser) */ -void parser__ReduceAction44__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 */; @@ -5924,795 +6651,774 @@ 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_tobranode2 /* var tobranode2: nullable Object */; +short int var4 /* : 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* 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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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; +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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3425); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4474); +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_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(cltype10 >= var_listnode6->type->table_size) { -var9 = 0; +if(cltype6 >= var_tcbranode3->type->table_size) { +var5 = 0; } else { -var9 = var_listnode6->type->type_table[cltype10] == idtype11; +var5 = var_tcbranode3->type->type_table[cltype6] == idtype7; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3428); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4476); +show_backtrace(1); } -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; +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(cltype13 >= var_pclassdefnode7->type->table_size) { -var12 = 0; +if(cltype9 >= var_tassignnode4->type->table_size) { +var8 = 0; } else { -var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14; +var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3430); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4478); +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 */ +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 */ +} +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); +} +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +} +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:; +} +/* 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_tidnode2 /* var tidnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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 = parser_work__Parser__pop(var_p); } -if (var17){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; +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_tidnode2->type->table_size) { +var2 = 0; } else { +var2 = var_tidnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4495); +show_backtrace(1); +} +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); +} +{ +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 */; -CHECK_NEW_parser_nodes__AModule(var18); -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#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#ReduceAction45#action for (self: ReduceAction45, Parser) */ -void parser__ReduceAction45__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_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_listnode8 /* var listnode8: 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* var_listnode6 /* var listnode6: nullable Object */; +val* var_tcparnode5 /* var tcparnode5: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */; +val* var_ptypenode6 /* var ptypenode6: 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* 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 */; -CHECK_NEW_array__Array(var5); -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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 */; -CHECK_NEW_array__Array(var7); -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) { +{ +((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* 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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3458); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4516); +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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3460); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4518); +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; +{ +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(cltype14 >= var_listnode6->type->table_size) { +if(cltype14 >= var_tcparnode5->type->table_size) { var13 = 0; } else { -var13 = var_listnode6->type->type_table[cltype14] == idtype15; +var13 = var_tcparnode5->type->type_table[cltype14] == idtype15; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3463); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4521); +show_backtrace(1); } -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) { +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(cltype17 >= var_pclassdefnode7->type->table_size) { +if(cltype17 >= var_ptypenode6->type->table_size) { var16 = 0; } else { -var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18; +var16 = var_ptypenode6->type->type_table[cltype17] == idtype18; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3465); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4523); +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 */ +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 */ } -if (var21){ -((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on */; -} else { +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); +} +{ +parser_work__Parser__push(var_p, var21, 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 */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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#ReduceAction46#action for (self: ReduceAction46, Parser) */ -void parser__ReduceAction46__action(val* self, val* p0) { +/* 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_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_listnode9 /* var listnode9: 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* 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* 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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; +{ +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; var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode9 = var7; -var_listnode3 = var_nodearraylist1; +{ +((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* 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(cltype >= var_toparnode2->type->table_size) { +var7 = 0; +} else { +var7 = var_toparnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4546); +show_backtrace(1); +} +var_listnode3 = var_nodearraylist3; /* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; +cltype9 = type_array__Arraykernel__Object.color; +idtype10 = type_array__Arraykernel__Object.id; if(var_listnode3 == NULL) { var8 = 0; } else { -if(cltype >= var_listnode3->type->table_size) { +if(cltype9 >= var_listnode3->type->table_size) { var8 = 0; } else { -var8 = var_listnode3->type->type_table[cltype] == idtype; +var8 = var_listnode3->type->type_table[cltype9] == idtype10; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3493); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4548); +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; +{ +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(cltype11 >= var_listnode5->type->table_size) { -var10 = 0; +if(cltype13 >= var_tcparnode5->type->table_size) { +var12 = 0; } else { -var10 = var_listnode5->type->type_table[cltype11] == idtype12; +var12 = var_tcparnode5->type->type_table[cltype13] == idtype14; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3496); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4551); +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; -} else { -if(cltype15 >= var_listnode7->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +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 */ +} +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); +} +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* 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#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_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* var_ptypenode5 /* var ptypenode5: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +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 = parser_work__Parser__pop(var_p); } +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3499); -exit(1); +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; } -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_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(cltype18 >= var_pclassdefnode8->type->table_size) { -var17 = 0; +if(cltype >= var_ptypenode5->type->table_size) { +var4 = 0; } else { -var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19; +var4 = var_ptypenode5->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3501); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4571); +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 */ +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 */ } -if (var22){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var23); -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#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#ReduceAction47#action for (self: ReduceAction47, Parser) */ -void parser__ReduceAction47__action(val* self, val* p0) { +/* 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_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 */; -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* 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 = ((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 */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3530); -exit(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; +var_nodearraylist1 = var1; +var2 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* 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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3532); -exit(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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3535); -exit(1); +/* 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:; } -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; +/* 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_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 (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3538); -exit(1); +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; } -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; -} else { -if(cltype22 >= var_pclassdefnode8->type->table_size) { -var21 = 0; +var_listnode2 = var3; +var_pparamnode1 = var_nodearraylist1; +var4 = NULL; +if (var_pparamnode1 == NULL) { +var5 = 0; /* is null */ } else { -var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23; +var5 = 1; /* arg is null and recv is not */ } +if (0) { +var6 = ((short int (*)(val*, val*))(var_pparamnode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_pparamnode1, var4) /* != on */; +var5 = var6; } -if (!var21) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3540); -exit(1); +if (var5){ +{ +array__Array__add(var_listnode2, var_pparamnode1); /* Direct call array#Array#add on */ } -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 */ } -if (var26){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +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); +} +{ +parser_work__Parser__push(var_p, var8, 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 */; -CHECK_NEW_parser_nodes__AModule(var27); -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#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#ReduceAction48#action for (self: ReduceAction48, Parser) */ -void parser__ReduceAction48__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_nodearraylist2 /* var nodearraylist2: 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* 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_listnode3 /* var listnode3: Array[Object] */; +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* 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* 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 */; -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 */; -CHECK_NEW_array__Array(var3); -var_listnode3 = var3; +{ +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; var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode9 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode7 = var6; -var_listnode6 = var_nodearraylist1; -/* isa Array[Object] */ +{ +((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on */; +} +var_listnode3 = var4; +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_listnode6 == NULL) { -var7 = 0; +if(var_listnode2 == NULL) { +var5 = 0; } else { -if(cltype >= var_listnode6->type->table_size) { -var7 = 0; +if(cltype >= var_listnode2->type->table_size) { +var5 = 0; } else { -var7 = var_listnode6->type->type_table[cltype] == idtype; +var5 = var_listnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3567); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4626); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var9); -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; +var6 = NULL; +if (var_pparamnode1 == NULL) { +var7 = 0; /* is null */ } else { -var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12; +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 (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3573); -exit(1); +if (var7){ +{ +array__Array__add(var_listnode3, var_pparamnode1); /* Direct call array#Array#add on */ } -var13 = NULL; -if (var_pclassdefnode5 == NULL) { -var14 = 0; /* is null */ } else { -var14 = 1; /* arg is null and recv is not */ } -if (var14){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on */; -} else { +{ +var9 = parser_work__ReduceAction__concat(self, var_listnode3, var_listnode2); } -var15 = NULL; -if (var_pclassdefnode8 == NULL) { -var16 = 0; /* is null */ -} else { -var16 = 1; /* arg is null and recv is not */ +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); } -if (var16){ -((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, var11, 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 */; -CHECK_NEW_parser_nodes__AModule(var17); -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#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#ReduceAction49#action for (self: ReduceAction49, Parser) */ -void parser__ReduceAction49__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 */; @@ -6722,507 +7428,344 @@ 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 */; -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* var_pparamnode1 /* var pparamnode1: 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 */; +{ +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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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; +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 */ } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3602); -exit(1); +RET_LABEL:; } -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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; +/* 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#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_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_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 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3605); -exit(1); +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var13); -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; +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_pclassdefnode8->type->table_size) { -var14 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3611); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4656); +show_backtrace(1); } -var17 = NULL; -if (var_pclassdefnode5 == NULL) { -var18 = 0; /* is null */ +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 { -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 */; +if(cltype5 >= var_pannotationsnode5->type->table_size) { +var4 = 0; } else { +var4 = var_pannotationsnode5->type->type_table[cltype5] == idtype6; } -var19 = NULL; -if (var_pclassdefnode8 == NULL) { -var20 = 0; /* is null */ -} else { -var20 = 1; /* arg is null and recv is not */ } -if (var20){ -((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on */; -} else { +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4658); +show_backtrace(1); +} +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var21); -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#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#ReduceAction50#action for (self: ReduceAction50, Parser) */ -void parser__ReduceAction50__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_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_tidnode2 /* var tidnode2: 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 */; +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 = ((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 */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3640); -exit(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 */; -CHECK_NEW_array__Array(var9); -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_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(cltype11 >= var_listnode7->type->table_size) { -var10 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var3 = 0; } else { -var10 = var_listnode7->type->type_table[cltype11] == idtype12; +var3 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3644); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4677); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var14); -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_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(cltype16 >= var_pclassdefnode9->type->table_size) { -var15 = 0; +if(cltype5 >= var_ptypenode3->type->table_size) { +var4 = 0; } else { -var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17; -} +var4 = var_ptypenode3->type->type_table[cltype5] == idtype6; } -if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3650); -exit(1); } -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4679); +show_backtrace(1); } -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__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 */ } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 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 (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, var11, 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 */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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#ReduceAction51#action for (self: ReduceAction51, Parser) */ -void parser__ReduceAction51__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_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_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 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* 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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3680); -exit(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_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(cltype10 >= var_listnode3->type->table_size) { -var9 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var4 = 0; } else { -var9 = var_listnode3->type->type_table[cltype10] == idtype11; +var4 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3682); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4699); +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; -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -CHECK_NEW_array__Array(var13); -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; +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_listnode7->type->table_size) { -var14 = 0; +if(cltype6 >= var_ptypenode3->type->table_size) { +var5 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +var5 = var_ptypenode3->type->type_table[cltype6] == idtype7; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3686); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4701); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var18); -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_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_pclassdefnode9->type->table_size) { -var19 = 0; +if(cltype9 >= var_pannotationsnode5->type->table_size) { +var8 = 0; } else { -var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21; +var8 = var_pannotationsnode5->type->type_table[cltype9] == idtype10; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3692); -exit(1); -} -var22 = NULL; -if (var_pclassdefnode6 == NULL) { -var23 = 0; /* is null */ -} else { -var23 = 1; /* arg is null and recv is not */ +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4703); +show_backtrace(1); } -if (var23){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* 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 */ } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 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 (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, var14, 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 */; -CHECK_NEW_parser_nodes__AModule(var26); -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#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#ReduceAction52#action for (self: ReduceAction52, Parser) */ -void parser__ReduceAction52__action(val* self, val* p0) { +/* 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 */; @@ -7232,161 +7775,115 @@ 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_tidnode2 /* var tidnode2: 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_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 */; +{ +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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode5 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -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_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(cltype >= var_listnode4->type->table_size) { -var7 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var4 = 0; } else { -var7 = var_listnode4->type->type_table[cltype] == idtype; +var4 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3721); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4723); +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 */; -CHECK_NEW_array__Array(var9); -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_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(cltype11 >= var_listnode7->type->table_size) { -var10 = 0; +if(cltype6 >= var_ptypenode3->type->table_size) { +var5 = 0; } else { -var10 = var_listnode7->type->type_table[cltype11] == idtype12; +var5 = var_ptypenode3->type->type_table[cltype6] == idtype7; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3725); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4725); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var14); -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_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(cltype16 >= var_pclassdefnode9->type->table_size) { -var15 = 0; +if(cltype9 >= var_tdotdotdotnode4->type->table_size) { +var8 = 0; } else { -var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17; -} +var8 = var_tdotdotdotnode4->type->type_table[cltype9] == idtype10; } -if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3731); -exit(1); } -var18 = NULL; -if (var_pclassdefnode6 == NULL) { -var19 = 0; /* is null */ -} else { -var19 = 1; /* arg is null and recv is not */ +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4727); +show_backtrace(1); } -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__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 */ } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 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 (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, var14, 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 */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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:; } -/* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */ -void parser__ReduceAction53__action(val* self, val* p0) { +/* 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 */; @@ -7398,589 +7895,440 @@ 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_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 var5 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; +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* 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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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; +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_pmoduledeclnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tidnode2->type->table_size) { +var5 = 0; } else { -var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype; +var5 = var_tidnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3761); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4748); +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; +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(cltype10 >= var_listnode4->type->table_size) { -var9 = 0; +if(cltype7 >= var_ptypenode3->type->table_size) { +var6 = 0; } else { -var9 = var_listnode4->type->type_table[cltype10] == idtype11; +var6 = var_ptypenode3->type->type_table[cltype7] == idtype8; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3763); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4750); +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 */; -CHECK_NEW_array__Array(var13); -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; +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_listnode7->type->table_size) { -var14 = 0; +if(cltype10 >= var_tdotdotdotnode4->type->table_size) { +var9 = 0; } else { -var14 = var_listnode7->type->type_table[cltype15] == idtype16; +var9 = var_tdotdotdotnode4->type->type_table[cltype10] == idtype11; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3767); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4752); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var18); -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_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_pclassdefnode9->type->table_size) { -var19 = 0; +if(cltype13 >= var_pannotationsnode5->type->table_size) { +var12 = 0; } else { -var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21; -} +var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14; } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3773); -exit(1); } -var22 = NULL; -if (var_pclassdefnode6 == NULL) { -var23 = 0; /* is null */ -} else { -var23 = 1; /* arg is null and recv is not */ +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4754); +show_backtrace(1); } -if (var23){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* 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 */ } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 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 (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, var17, 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 */; -CHECK_NEW_parser_nodes__AModule(var26); -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#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#ReduceAction54#action for (self: ReduceAction54, Parser) */ -void parser__ReduceAction54__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 */; 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* var4 /* : 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* 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_tkwimportnode2 /* var tkwimportnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : null */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode6 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3803); -exit(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_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_nodearraylist1 = var3; +var4 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on */; +} +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_listnode5->type->table_size) { -var10 = 0; +if(cltype >= var_tkwimportnode2->type->table_size) { +var5 = 0; } else { -var10 = var_listnode5->type->type_table[cltype11] == idtype12; +var5 = var_tkwimportnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3806); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4775); +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 */; -CHECK_NEW_array__Array(var14); -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_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(cltype16 >= var_listnode8->type->table_size) { -var15 = 0; +if(cltype7 >= var_pexterncallnode3->type->table_size) { +var6 = 0; } else { -var15 = var_listnode8->type->type_table[cltype16] == idtype17; +var6 = var_pexterncallnode3->type->type_table[cltype7] == idtype8; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3810); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4777); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var19); -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; -} else { -if(cltype21 >= var_pclassdefnode10->type->table_size) { -var20 = 0; +var9 = NULL; +if (var_pexterncallnode3 == NULL) { +var10 = 0; /* is null */ } else { -var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22; +var10 = 1; /* arg is null and recv is not */ } +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; } -if (!var20) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3816); -exit(1); +var15 = !var13; +var11 = var15; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -var23 = NULL; -if (var_pclassdefnode7 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ +var10 = var11; } -if (var24){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +if (var10){ +{ +array__Array__add(var_listnode4, var_pexterncallnode3); /* Direct call array#Array#add on */ } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ } else { -var26 = 1; /* arg is null and recv is not */ } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* 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 */ +} +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); +} +{ +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 */; -CHECK_NEW_parser_nodes__AModule(var27); -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#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:; } -/* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */ -void parser__ReduceAction55__action(val* self, val* p0) { +/* method parser#ReduceAction126#action for (self: ReduceAction126, Parser) */ +void parser__ReduceAction126__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_listnode11 /* var listnode11: Array[Object] */; -val* var_pmoduledeclnode2 /* var pmoduledeclnode2: 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* var_listnode3 /* var listnode3: 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 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; +val* var13 /* : null */; 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 var15 /* : Bool */; +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_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* 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 */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3847); -exit(1); +var_nodearraylist3 = 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; +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var5->class->vft[COLOR_kernel__Object__init]))(var5) /* 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(cltype11 >= var_listnode3->type->table_size) { -var10 = 0; +if(cltype >= var_tkwimportnode2->type->table_size) { +var6 = 0; } else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var6 = var_tkwimportnode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3849); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4800); +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; +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(cltype15 >= var_listnode5->type->table_size) { -var14 = 0; +if(cltype8 >= var_pexterncallnode3->type->table_size) { +var7 = 0; } else { -var14 = var_listnode5->type->type_table[cltype15] == idtype16; +var7 = var_pexterncallnode3->type->type_table[cltype8] == idtype9; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3852); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4802); +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; -var18 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on */; -CHECK_NEW_array__Array(var18); -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; +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_listnode8->type->table_size) { -var19 = 0; +if(cltype11 >= var_listnode4->type->table_size) { +var10 = 0; } else { -var19 = var_listnode8->type->type_table[cltype20] == idtype21; +var10 = var_listnode4->type->type_table[cltype11] == idtype12; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3856); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4804); +show_backtrace(1); } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var23); -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; +var13 = NULL; +if (var_pexterncallnode3 == NULL) { +var14 = 0; /* is null */ } else { -var24 = var_pclassdefnode10->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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3862); -exit(1); +var19 = !var17; +var15 = var19; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -var27 = NULL; -if (var_pclassdefnode7 == NULL) { -var28 = 0; /* is null */ -} else { -var28 = 1; /* arg is null and recv is not */ +var14 = var15; } -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +if (var14){ +{ +array__Array__add(var_listnode5, var_pexterncallnode3); /* Direct call array#Array#add on */ } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ } else { -var30 = 1; /* arg is null and recv is not */ } -if (var30){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* 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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var31); -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#ReduceAction126#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction126__action(val* self, val* p0) { +parser__ReduceAction126__action(self, p0); /* Direct call parser#ReduceAction126#action on */ RET_LABEL:; } -/* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */ -void parser__ReduceAction56__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 */; @@ -7990,1162 +8338,847 @@ 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_listnode10 /* var listnode10: Array[Object] */; -val* var_listnode5 /* var listnode5: nullable Object */; -short int var7 /* : 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* 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_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 */; -CHECK_NEW_array__Array(var4); -var_listnode3 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode10 = var6; -var_listnode5 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode5 == NULL) { -var7 = 0; -} else { -if(cltype >= var_listnode5->type->table_size) { -var7 = 0; -} else { -var7 = var_listnode5->type->type_table[cltype] == idtype; -} -} -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3891); -exit(1); -} -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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; -} else { -var9 = var_listnode7->type->type_table[cltype10] == idtype11; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3894); -exit(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var13); -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; +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); } +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3900); -exit(1); +RET_LABEL:; } -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 */ +/* 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:; } -if (var19){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on */; -} else { +/* 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_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); } -var20 = NULL; -if (var_pclassdefnode9 == NULL) { -var21 = 0; /* is null */ -} else { -var21 = 1; /* arg is null and recv is not */ +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 (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, var3, 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 */; -CHECK_NEW_parser_nodes__AModule(var22); -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#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#ReduceAction57#action for (self: ReduceAction57, Parser) */ -void parser__ReduceAction57__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_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_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_tkwsupernode2 /* var tkwsupernode2: nullable Object */; +short int var2 /* : 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* 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 = ((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 */; -CHECK_NEW_array__Array(var5); -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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); } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3931); -exit(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_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(cltype10 >= var_listnode5->type->table_size) { -var9 = 0; +if(cltype >= var_tkwsupernode2->type->table_size) { +var2 = 0; } else { -var9 = var_listnode5->type->type_table[cltype10] == idtype11; +var2 = var_tkwsupernode2->type->type_table[cltype] == idtype; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3933); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4848); +show_backtrace(1); } -var12 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -CHECK_NEW_array__Array(var12); -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; -} else { -if(cltype14 >= var_listnode7->type->table_size) { -var13 = 0; -} else { -var13 = var_listnode7->type->type_table[cltype14] == idtype15; +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 */ } +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 (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3936); -exit(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var17); -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; -} else { -if(cltype19 >= var_pclassdefnode9->type->table_size) { -var18 = 0; -} else { -var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20; +RET_LABEL:; } +/* 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:; } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3942); -exit(1); +/* 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 */; +val* var1 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pmethidnode2 /* var pmethidnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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 = parser_work__Parser__pop(var_p); } -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 */ +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 { -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 */; +if(cltype >= var_pmethidnode2->type->table_size) { +var2 = 0; } else { +var2 = var_pmethidnode2->type->type_table[cltype] == idtype; } -var24 = NULL; -if (var_pclassdefnode9 == NULL) { -var25 = 0; /* is null */ -} else { -var25 = 1; /* arg is null and recv is not */ } -if (var25){ -((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on */; -} else { +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4863); +show_backtrace(1); +} +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); +} +{ +parser_work__Parser__push(var_p, var5, 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 */; -CHECK_NEW_parser_nodes__AModule(var26); -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#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#ReduceAction58#action for (self: ReduceAction58, Parser) */ -void parser__ReduceAction58__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_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 */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var4 /* : 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_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* 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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3973); -exit(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_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(cltype11 >= var_listnode6->type->table_size) { -var10 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var4 = 0; } else { -var10 = var_listnode6->type->type_table[cltype11] == idtype12; +var4 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3976); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4880); +show_backtrace(1); } -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -CHECK_NEW_array__Array(var13); -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_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(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype6 >= var_tdotnode3->type->table_size) { +var5 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var5 = var_tdotnode3->type->type_table[cltype6] == idtype7; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3979); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4882); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var18); -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_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(cltype20 >= var_pclassdefnode10->type->table_size) { -var19 = 0; +if(cltype9 >= var_pmethidnode4->type->table_size) { +var8 = 0; } else { -var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21; +var8 = var_pmethidnode4->type->type_table[cltype9] == idtype10; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3985); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4884); +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 */ +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 */ } -if (var24){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +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); } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* 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#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_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); } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; +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(cltype >= var_ptypenode2->type->table_size) { +var2 = 0; } else { +var2 = var_ptypenode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4901); +show_backtrace(1); +} +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var27); -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#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#ReduceAction59#action for (self: ReduceAction59, Parser) */ -void parser__ReduceAction59__action(val* self, val* p0) { +/* method parser#ReduceAction135#action for (self: ReduceAction135, Parser) */ +void parser__ReduceAction135__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_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* 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_ptypenode2 /* var ptypenode2: nullable Object */; +short int var10 /* : 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 */; +val* var_tdotnode3 /* var tdotnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_tkwasnode4 /* var tkwasnode4: 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_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_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 */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode5 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4017); -exit(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; +{ +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(cltype11 >= var_listnode3->type->table_size) { +if(cltype >= var_ptypenode2->type->table_size) { var10 = 0; } else { -var10 = var_listnode3->type->type_table[cltype11] == idtype12; +var10 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4019); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4924); +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_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_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(cltype15 >= var_listnode6->type->table_size) { -var14 = 0; +if(cltype12 >= var_tdotnode3->type->table_size) { +var11 = 0; } else { -var14 = var_listnode6->type->type_table[cltype15] == idtype16; +var11 = var_tdotnode3->type->type_table[cltype12] == idtype13; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4022); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4926); +show_backtrace(1); } -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -CHECK_NEW_array__Array(var17); -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_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(cltype19 >= var_listnode8->type->table_size) { -var18 = 0; +if(cltype15 >= var_tkwasnode4->type->table_size) { +var14 = 0; } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; +var14 = var_tkwasnode4->type->type_table[cltype15] == idtype16; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4025); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4928); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var22); -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_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(cltype24 >= var_pclassdefnode10->type->table_size) { -var23 = 0; +if(cltype18 >= var_ptypenode5->type->table_size) { +var17 = 0; } else { -var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25; +var17 = var_ptypenode5->type->type_table[cltype18] == idtype19; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4031); -exit(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 (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4930); +show_backtrace(1); } -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +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 */ } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ -} else { -var30 = 1; /* arg is null and recv is not */ +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); } -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, var22, 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 */; -CHECK_NEW_parser_nodes__AModule(var31); -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#ReduceAction135#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction135__action(val* self, val* p0) { +parser__ReduceAction135__action(self, p0); /* Direct call parser#ReduceAction135#action on */ RET_LABEL:; } -/* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */ -void parser__ReduceAction60__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_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_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_ptypenode2 /* var ptypenode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; +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* 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_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_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 */; -CHECK_NEW_array__Array(var5); -var_listnode3 = var5; -var6 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); -var_listnode5 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -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; -} else { -if(cltype >= var_listnode4->type->table_size) { -var8 = 0; -} else { -var8 = var_listnode4->type->type_table[cltype] == idtype; +{ +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); } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4062); -exit(1); +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -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_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(cltype11 >= var_listnode6->type->table_size) { -var10 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var6 = 0; } else { -var10 = var_listnode6->type->type_table[cltype11] == idtype12; +var6 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4065); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4952); +show_backtrace(1); } -var13 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on */; -CHECK_NEW_array__Array(var13); -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_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(cltype15 >= var_listnode8->type->table_size) { -var14 = 0; +if(cltype8 >= var_tdotnode3->type->table_size) { +var7 = 0; } else { -var14 = var_listnode8->type->type_table[cltype15] == idtype16; +var7 = var_tdotnode3->type->type_table[cltype8] == idtype9; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4068); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4954); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var18); -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_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(cltype20 >= var_pclassdefnode10->type->table_size) { -var19 = 0; +if(cltype11 >= var_tkwasnode4->type->table_size) { +var10 = 0; } else { -var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21; +var10 = var_tkwasnode4->type->type_table[cltype11] == idtype12; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4074); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4956); +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 */ +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 { -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 */; +if(cltype14 >= var_ptypenode5->type->table_size) { +var13 = 0; } else { +var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; } -var25 = NULL; -if (var_pclassdefnode10 == NULL) { -var26 = 0; /* is null */ -} else { -var26 = 1; /* arg is null and recv is not */ } -if (var26){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on */; -} else { +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4958); +show_backtrace(1); +} +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 */ } -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 */; -CHECK_NEW_parser_nodes__AModule(var27); -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#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:; } -/* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */ -void parser__ReduceAction61__action(val* self, val* p0) { +/* 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_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* 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* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode6 /* var listnode6: nullable Object */; +val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_tkwnullablenode4 /* var tkwnullablenode4: 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* 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_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 */; -CHECK_NEW_array__Array(var6); -var_listnode3 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode5 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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 (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4106); -exit(1); -} -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; +{ +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(cltype11 >= var_listnode4->type->table_size) { +if(cltype >= var_ptypenode2->type->table_size) { var10 = 0; } else { -var10 = var_listnode4->type->type_table[cltype11] == idtype12; -} -} -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4108); -exit(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; -} else { -if(cltype15 >= var_listnode6->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode6->type->type_table[cltype15] == idtype16; +var10 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4111); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4984); +show_backtrace(1); } -var17 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on */; -CHECK_NEW_array__Array(var17); -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_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(cltype19 >= var_listnode8->type->table_size) { -var18 = 0; +if(cltype12 >= var_tkwasnode3->type->table_size) { +var11 = 0; } else { -var18 = var_listnode8->type->type_table[cltype19] == idtype20; +var11 = var_tkwasnode3->type->type_table[cltype12] == idtype13; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4114); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4986); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var22); -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_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(cltype24 >= var_pclassdefnode10->type->table_size) { -var23 = 0; +if(cltype15 >= var_tkwnullablenode4->type->table_size) { +var14 = 0; } else { -var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25; -} +var14 = var_tkwnullablenode4->type->type_table[cltype15] == idtype16; } -if (!var23) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4120); -exit(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 (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 4988); +show_backtrace(1); } -if (var28){ -((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on */; -} else { +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 */ } -var29 = NULL; -if (var_pclassdefnode10 == NULL) { -var30 = 0; /* is null */ -} else { -var30 = 1; /* arg is null and recv is not */ +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); } -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, var19, 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 */; -CHECK_NEW_parser_nodes__AModule(var31); -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#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:; } -/* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */ -void parser__ReduceAction62__action(val* self, val* p0) { +/* method parser#ReduceAction138#action for (self: ReduceAction138, Parser) */ +void parser__ReduceAction138__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -9159,814 +9192,780 @@ 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_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var9 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: 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 */; -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 */; -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* 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_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 */; -CHECK_NEW_array__Array(var6); -var_listnode4 = var6; -var7 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); -var_listnode6 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -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_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4152); -exit(1); -} -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; -} else { -if(cltype12 >= var_listnode5->type->table_size) { -var11 = 0; -} else { -var11 = var_listnode5->type->type_table[cltype12] == idtype13; +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4155); -exit(1); +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -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_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(cltype16 >= var_listnode7->type->table_size) { -var15 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var6 = 0; } else { -var15 = var_listnode7->type->type_table[cltype16] == idtype17; +var6 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4158); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5009); +show_backtrace(1); } -var18 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on */; -CHECK_NEW_array__Array(var18); -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_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 { -if(cltype20 >= var_listnode9->type->table_size) { -var19 = 0; +if(cltype8 >= var_tkwasnode3->type->table_size) { +var7 = 0; } else { -var19 = var_listnode9->type->type_table[cltype20] == idtype21; +var7 = var_tkwasnode3->type->type_table[cltype8] == idtype9; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4161); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5011); +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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var23); -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; +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(cltype25 >= var_pclassdefnode11->type->table_size) { -var24 = 0; +if(cltype11 >= var_tkwnullablenode4->type->table_size) { +var10 = 0; } else { -var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26; +var10 = var_tkwnullablenode4->type->type_table[cltype11] == idtype12; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4167); -exit(1); -} -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 */ +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5013); +show_backtrace(1); } -if (var29){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on */; -} else { +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 */ } -var30 = NULL; -if (var_pclassdefnode11 == NULL) { -var31 = 0; /* is null */ -} else { -var31 = 1; /* arg is null and recv is not */ +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); } -if (var31){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var15, 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 */; -CHECK_NEW_parser_nodes__AModule(var32); -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#ReduceAction138#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction138__action(val* self, val* p0) { +parser__ReduceAction138__action(self, p0); /* Direct call parser#ReduceAction138#action on */ RET_LABEL:; } -/* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */ -void parser__ReduceAction63__action(val* self, val* p0) { +/* 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_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* 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 */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var12 /* : 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 */; +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 /* : 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* 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_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 */; -CHECK_NEW_array__Array(var7); -var_listnode4 = var7; -var8 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on */; -CHECK_NEW_array__Array(var8); -var_listnode6 = var8; -var9 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -CHECK_NEW_array__Array(var9); -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; -} -} -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4200); -exit(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; -} -} -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4202); -exit(1); -} -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; +{ +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(cltype16 >= var_listnode5->type->table_size) { -var15 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var12 = 0; } else { -var15 = var_listnode5->type->type_table[cltype16] == idtype17; +var12 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4205); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5040); +show_backtrace(1); } -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; +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(cltype20 >= var_listnode7->type->table_size) { -var19 = 0; +if(cltype14 >= var_tkwasnode3->type->table_size) { +var13 = 0; } else { -var19 = var_listnode7->type->type_table[cltype20] == idtype21; +var13 = var_tkwasnode3->type->type_table[cltype14] == idtype15; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4208); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5042); +show_backtrace(1); } -var22 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on */; -CHECK_NEW_array__Array(var22); -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; +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(cltype24 >= var_listnode9->type->table_size) { -var23 = 0; +if(cltype17 >= var_tkwnotnode4->type->table_size) { +var16 = 0; } else { -var23 = var_listnode9->type->type_table[cltype24] == idtype25; +var16 = var_tkwnotnode4->type->type_table[cltype17] == idtype18; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4211); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5044); +show_backtrace(1); } -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 */; -CHECK_NEW_parser_nodes__ATopClassdef(var27); -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_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(cltype29 >= var_pclassdefnode11->type->table_size) { -var28 = 0; +if(cltype20 >= var_tkwnullablenode5->type->table_size) { +var19 = 0; } else { -var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30; -} +var19 = var_tkwnullablenode5->type->type_table[cltype20] == idtype21; } -if (!var28) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4217); -exit(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 (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5046); +show_backtrace(1); } -if (var33){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on */; -} else { +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 */ } -var34 = NULL; -if (var_pclassdefnode11 == NULL) { -var35 = 0; /* is null */ -} else { -var35 = 1; /* arg is null and recv is not */ +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 (var35){ -((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on */; -} else { +{ +parser_work__Parser__push(var_p, var24, 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 */; -CHECK_NEW_parser_nodes__AModule(var36); -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* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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 var6 /* : Bool */; +val* var_ptypenode2 /* var ptypenode2: nullable Object */; +short int var8 /* : 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* var_tkwasnode3 /* var tkwasnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var18 /* : AAsNotNullableExternCall */; +val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */; +long var19 /* : Int */; +long var20 /* : 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; +{ +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_ptypenode2 = var_nodearraylist1; +/* isa nullable AType */ +cltype = type_nullable_parser_nodes__AType.color; +idtype = type_nullable_parser_nodes__AType.id; +if(var_ptypenode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var6 = 0; +if(cltype >= var_ptypenode2->type->table_size) { +var8 = 0; } else { -var6 = var_pdocnode2->type->type_table[cltype] == idtype; +var8 = var_ptypenode2->type->type_table[cltype] == idtype; } } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4246); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5070); +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_tkwasnode3 = var_nodearraylist3; +/* isa nullable TKwas */ +cltype10 = type_nullable_parser_nodes__TKwas.color; +idtype11 = type_nullable_parser_nodes__TKwas.id; +if(var_tkwasnode3 == NULL) { +var9 = 1; } else { -if(cltype8 >= var_tkwmodulenode3->type->table_size) { -var7 = 0; +if(cltype10 >= var_tkwasnode3->type->table_size) { +var9 = 0; } else { -var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9; +var9 = var_tkwasnode3->type->type_table[cltype10] == idtype11; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4248); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5072); +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; +var_tkwnotnode4 = var_nodearraylist5; +/* isa nullable TKwnot */ +cltype13 = type_nullable_parser_nodes__TKwnot.color; +idtype14 = type_nullable_parser_nodes__TKwnot.id; +if(var_tkwnotnode4 == NULL) { +var12 = 1; } else { -if(cltype11 >= var_pmodulenamenode4->type->table_size) { -var10 = 0; +if(cltype13 >= var_tkwnotnode4->type->table_size) { +var12 = 0; +} else { +var12 = var_tkwnotnode4->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5074); +show_backtrace(1); +} +var_tkwnullablenode5 = var_nodearraylist7; +/* isa nullable TKwnullable */ +cltype16 = type_nullable_parser_nodes__TKwnullable.color; +idtype17 = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode5 == NULL) { +var15 = 1; } else { -var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12; +if(cltype16 >= var_tkwnullablenode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tkwnullablenode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5076); +show_backtrace(1); } +var18 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall); +{ +parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall(var18, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5); /* Direct call parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall on */ } -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4250); -exit(1); +var_pexterncallnode1 = var18; +var_node_list = var_pexterncallnode1; +var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var20 = parser_work__Parser__go_to(var_p, var19); +} +{ +parser_work__Parser__push(var_p, var20, 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 */; -CHECK_NEW_parser_nodes__AModuledecl(var13); -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#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_tstringnode1 /* var tstringnode1: 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_tstringnode1 = var_nodearraylist1; +var_node_list = var_tstringnode1; +var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var3 = parser_work__Parser__go_to(var_p, var2); +} +{ +parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* 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#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* 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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_tkwinnode2 /* var tkwinnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwmodulenode3 /* var tkwmodulenode3: 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* var_tstringnode3 /* var tstringnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AInLanguage */; +val* var_pinlanguagenode1 /* var pinlanguagenode1: nullable AInLanguage */; +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_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; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4273); -exit(1); +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -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_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var_tkwinnode2 = var_nodearraylist1; +/* isa nullable TKwin */ +cltype = type_nullable_parser_nodes__TKwin.color; +idtype = type_nullable_parser_nodes__TKwin.id; +if(var_tkwinnode2 == NULL) { +var5 = 1; } else { -if(cltype9 >= var_tkwmodulenode3->type->table_size) { -var8 = 0; +if(cltype >= var_tkwinnode2->type->table_size) { +var5 = 0; } else { -var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10; +var5 = var_tkwinnode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4275); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5108); +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_tstringnode3 = var_nodearraylist3; +/* isa nullable TString */ +cltype7 = type_nullable_parser_nodes__TString.color; +idtype8 = type_nullable_parser_nodes__TString.id; +if(var_tstringnode3 == NULL) { +var6 = 1; } else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; +if(cltype7 >= var_tstringnode3->type->table_size) { +var6 = 0; } else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var6 = var_tstringnode3->type->type_table[cltype7] == idtype8; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4277); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5110); +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; +var9 = NEW_parser_nodes__AInLanguage(&type_parser_nodes__AInLanguage); +{ +parser_prod__AInLanguage__init_ainlanguage(var9, var_tkwinnode2, var_tstringnode3); /* Direct call parser_prod#AInLanguage#init_ainlanguage on */ +} +var_pinlanguagenode1 = var9; +var_node_list = var_pinlanguagenode1; +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#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#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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AExternCodeBlock */; +val* var4 /* : null */; +val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */; +long var5 /* : Int */; +long var6 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_texterncodesegmentnode3 = var_nodearraylist1; +/* isa nullable TExternCodeSegment */ +cltype = type_nullable_parser_nodes__TExternCodeSegment.color; +idtype = type_nullable_parser_nodes__TExternCodeSegment.id; +if(var_texterncodesegmentnode3 == NULL) { +var2 = 1; } else { -if(cltype15 >= var_pannotationsnode5->type->table_size) { -var14 = 0; +if(cltype >= var_texterncodesegmentnode3->type->table_size) { +var2 = 0; } else { -var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16; +var2 = var_texterncodesegmentnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5126); +show_backtrace(1); } +var3 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock); +var4 = NULL; +{ +parser_prod__AExternCodeBlock__init_aexterncodeblock(var3, var4, var_texterncodesegmentnode3); /* Direct call parser_prod#AExternCodeBlock#init_aexterncodeblock on */ } -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4279); -exit(1); +var_pexterncodeblocknode1 = var3; +var_node_list = var_pexterncodeblocknode1; +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__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 */; -CHECK_NEW_parser_nodes__AModuledecl(var17); -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 */; 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#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#ReduceAction66#action for (self: ReduceAction66, Parser) */ -void parser__ReduceAction66__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* 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* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pinlanguagenode2 /* var pinlanguagenode2: nullable Object */; +short int var3 /* : 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 */; -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_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AExternCodeBlock */; +val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */; +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_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_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_pinlanguagenode2 = var_nodearraylist1; +/* isa nullable AInLanguage */ +cltype = type_nullable_parser_nodes__AInLanguage.color; +idtype = type_nullable_parser_nodes__AInLanguage.id; +if(var_pinlanguagenode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var7 = 0; +if(cltype >= var_pinlanguagenode2->type->table_size) { +var3 = 0; } else { -var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var3 = var_pinlanguagenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4302); -exit(1); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5143); +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_texterncodesegmentnode3 = var_nodearraylist2; +/* isa nullable TExternCodeSegment */ +cltype5 = type_nullable_parser_nodes__TExternCodeSegment.color; +idtype6 = type_nullable_parser_nodes__TExternCodeSegment.id; +if(var_texterncodesegmentnode3 == NULL) { +var4 = 1; } else { -if(cltype9 >= var_tkwimportnode3->type->table_size) { -var8 = 0; +if(cltype5 >= var_texterncodesegmentnode3->type->table_size) { +var4 = 0; } else { -var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10; +var4 = var_texterncodesegmentnode3->type->type_table[cltype5] == idtype6; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4304); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5145); +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; -} else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; -} else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var7 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock); +{ +parser_prod__AExternCodeBlock__init_aexterncodeblock(var7, var_pinlanguagenode2, var_texterncodesegmentnode3); /* Direct call parser_prod#AExternCodeBlock#init_aexterncodeblock on */ } +var_pexterncodeblocknode1 = var7; +var_node_list = var_pexterncodeblocknode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); } -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4306); -exit(1); +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } -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 */; -CHECK_NEW_parser_nodes__AStdImport(var14); -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 */; 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#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#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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: 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_pexterncodeblocknode1 = var_nodearraylist1; +var_node_list = var_pexterncodeblocknode1; +var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var3 = parser_work__Parser__go_to(var_p, var2); +} +{ +parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* 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:; }