X-Git-Url: http://nitlanguage.org diff --git a/c_src/parser.sep.4.c b/c_src/parser.sep.4.c index db499e5..0156777 100644 --- a/c_src/parser.sep.4.c +++ b/c_src/parser.sep.4.c @@ -1,264 +1,265 @@ #include "parser.sep.0.h" -/* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */ -void parser__ReduceAction65__action(val* self, val* p0) { +/* method parser#ReduceAction148#action for (self: ReduceAction148, Parser) */ +void parser__ReduceAction148__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_nodearraylist2 /* var nodearraylist2: 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_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_pexterncodeblocknode1 = var_nodearraylist2; +var_node_list = var_pexterncodeblocknode1; +var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = parser_work__Parser__go_to(var_p, var3); +} +{ +parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction148#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction148__action(val* self, val* p0) { +parser__ReduceAction148__action(self, p0); /* Direct call parser#ReduceAction148#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction149#action for (self: ReduceAction149, Parser) */ +void parser__ReduceAction149__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* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var7 /* : Bool */; +val* var3 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; +short int var4 /* : 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 */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : AType */; +val* var9 /* : null */; +val* var_ptypenode1 /* var ptypenode1: nullable AType */; +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_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4037); -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_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_listnode4 = var3; +var_tclassidnode3 = var_nodearraylist1; +/* isa nullable TClassid */ +cltype = type_nullable_parser_nodes__TClassid.color; +idtype = type_nullable_parser_nodes__TClassid.id; +if(var_tclassidnode3 == NULL) { +var4 = 1; } else { -if(cltype9 >= var_tkwmodulenode3->type->table_size) { -var8 = 0; +if(cltype >= var_tclassidnode3->type->table_size) { +var4 = 0; } else { -var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10; +var4 = var_tclassidnode3->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4039); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5186); +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_pannotationsnode5 = var_nodearraylist2; +/* isa nullable AAnnotations */ +cltype6 = type_nullable_parser_nodes__AAnnotations.color; +idtype7 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode5 == NULL) { +var5 = 1; } else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; +if(cltype6 >= var_pannotationsnode5->type->table_size) { +var5 = 0; } else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var5 = var_pannotationsnode5->type->type_table[cltype6] == idtype7; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4041); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5188); +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; -} else { -if(cltype15 >= var_pannotationsnode5->type->table_size) { -var14 = 0; -} else { -var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16; +var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType); +var9 = NULL; +{ +parser_prod__AType__init_atype(var8, var9, var_tclassidnode3, var_listnode4, var_pannotationsnode5); /* Direct call parser_prod#AType#init_atype on */ } +var_ptypenode1 = var8; +var_node_list = var_ptypenode1; +var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var11 = parser_work__Parser__go_to(var_p, var10); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4043); -exit(1); +{ +parser_work__Parser__push(var_p, var11, 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#ReduceAction149#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction149__action(val* self, val* p0) { +parser__ReduceAction149__action(self, p0); /* Direct call parser#ReduceAction149#action on */ RET_LABEL:; } -/* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */ -void parser__ReduceAction66__action(val* self, val* p0) { +/* method parser#ReduceAction150#action for (self: ReduceAction150, Parser) */ +void parser__ReduceAction150__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var7 /* : Bool */; +val* var4 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */; +short int var5 /* : 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_tclassidnode3 /* var tclassidnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : AType */; +val* var_ptypenode1 /* var ptypenode1: nullable AType */; +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_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_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_kernel__Object__init]))(var4) /* init on */; +} +var_listnode4 = var4; +var_tkwnullablenode2 = var_nodearraylist1; +/* isa nullable TKwnullable */ +cltype = type_nullable_parser_nodes__TKwnullable.color; +idtype = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode2 == NULL) { +var5 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var7 = 0; +if(cltype >= var_tkwnullablenode2->type->table_size) { +var5 = 0; } else { -var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var5 = var_tkwnullablenode2->type->type_table[cltype] == idtype; } } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4066); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5209); +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_tclassidnode3 = var_nodearraylist2; +/* isa nullable TClassid */ +cltype7 = type_nullable_parser_nodes__TClassid.color; +idtype8 = type_nullable_parser_nodes__TClassid.id; +if(var_tclassidnode3 == NULL) { +var6 = 1; } else { -if(cltype9 >= var_tkwimportnode3->type->table_size) { -var8 = 0; +if(cltype7 >= var_tclassidnode3->type->table_size) { +var6 = 0; } else { -var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10; +var6 = var_tclassidnode3->type->type_table[cltype7] == idtype8; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4068); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5211); +show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist5; -/* isa nullable AModuleName */ -cltype12 = type_nullable_parser_nodes__AModuleName.color; -idtype13 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var11 = 1; +var_pannotationsnode5 = var_nodearraylist3; +/* isa nullable AAnnotations */ +cltype10 = type_nullable_parser_nodes__AAnnotations.color; +idtype11 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode5 == NULL) { +var9 = 1; } else { -if(cltype12 >= var_pmodulenamenode4->type->table_size) { -var11 = 0; +if(cltype10 >= var_pannotationsnode5->type->table_size) { +var9 = 0; } else { -var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13; +var9 = var_pannotationsnode5->type->type_table[cltype10] == idtype11; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5213); +show_backtrace(1); +} +var12 = NEW_parser_nodes__AType(&type_parser_nodes__AType); +{ +parser_prod__AType__init_atype(var12, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var_pannotationsnode5); /* Direct call parser_prod#AType#init_atype on */ } +var_ptypenode1 = var12; +var_node_list = var_ptypenode1; +var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var14 = parser_work__Parser__go_to(var_p, var13); } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4070); -exit(1); +{ +parser_work__Parser__push(var_p, var14, 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#ReduceAction150#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction150__action(val* self, val* p0) { +parser__ReduceAction150__action(self, p0); /* Direct call parser#ReduceAction150#action on */ RET_LABEL:; } -/* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */ -void parser__ReduceAction67__action(val* self, val* p0) { +/* method parser#ReduceAction151#action for (self: ReduceAction151, Parser) */ +void parser__ReduceAction151__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -276,347 +277,2983 @@ val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var8 /* : Bool */; +val* var8 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : AStdImport */; -val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */; +val* var_listnode4 /* var listnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : Array[Object] */; +val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : AType */; +val* var18 /* : null */; +val* var_ptypenode1 /* var ptypenode1: nullable AType */; 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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist7 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist6 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var5 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var6 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var7 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var7; -var_pvisibilitynode2 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype = type_nullable_parser_nodes__AVisibility.color; -idtype = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode2 == NULL) { -var8 = 1; +var8 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on */; +} +var_listnode5 = var8; +var_tclassidnode3 = var_nodearraylist1; +/* isa nullable TClassid */ +cltype = type_nullable_parser_nodes__TClassid.color; +idtype = type_nullable_parser_nodes__TClassid.id; +if(var_tclassidnode3 == NULL) { +var9 = 1; } else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var8 = 0; +if(cltype >= var_tclassidnode3->type->table_size) { +var9 = 0; } else { -var8 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +var9 = var_tclassidnode3->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4094); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5238); +show_backtrace(1); } -var_tkwimportnode3 = var_nodearraylist3; -/* isa nullable TKwimport */ -cltype10 = type_nullable_parser_nodes__TKwimport.color; -idtype11 = type_nullable_parser_nodes__TKwimport.id; -if(var_tkwimportnode3 == NULL) { -var9 = 1; +var_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(cltype10 >= var_tkwimportnode3->type->table_size) { -var9 = 0; +if(cltype11 >= var_listnode4->type->table_size) { +var10 = 0; } else { -var9 = var_tkwimportnode3->type->type_table[cltype10] == idtype11; +var10 = var_listnode4->type->type_table[cltype11] == idtype12; } } -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4096); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5240); +show_backtrace(1); } -var_pmodulenamenode4 = var_nodearraylist5; -/* isa nullable AModuleName */ -cltype13 = type_nullable_parser_nodes__AModuleName.color; -idtype14 = type_nullable_parser_nodes__AModuleName.id; -if(var_pmodulenamenode4 == NULL) { -var12 = 1; +{ +var13 = parser_work__ReduceAction__concat(self, var_listnode5, var_listnode4); +} +var_listnode5 = var13; +var_pannotationsnode6 = var_nodearraylist7; +/* isa nullable AAnnotations */ +cltype15 = type_nullable_parser_nodes__AAnnotations.color; +idtype16 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode6 == NULL) { +var14 = 1; } else { -if(cltype13 >= var_pmodulenamenode4->type->table_size) { -var12 = 0; +if(cltype15 >= var_pannotationsnode6->type->table_size) { +var14 = 0; } else { -var12 = var_pmodulenamenode4->type->type_table[cltype13] == idtype14; +var14 = var_pannotationsnode6->type->type_table[cltype15] == idtype16; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4098); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5243); +show_backtrace(1); } -var_pannotationsnode5 = var_nodearraylist6; -/* isa nullable AAnnotations */ -cltype16 = type_nullable_parser_nodes__AAnnotations.color; -idtype17 = type_nullable_parser_nodes__AAnnotations.id; -if(var_pannotationsnode5 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_pannotationsnode5->type->table_size) { -var15 = 0; -} else { -var15 = var_pannotationsnode5->type->type_table[cltype16] == idtype17; +var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType); +var18 = NULL; +{ +parser_prod__AType__init_atype(var17, var18, var_tclassidnode3, var_listnode5, var_pannotationsnode6); /* Direct call parser_prod#AType#init_atype on */ } +var_ptypenode1 = var17; +var_node_list = var_ptypenode1; +var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var20 = parser_work__Parser__go_to(var_p, var19); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4100); -exit(1); +{ +parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ } -var18 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport); -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var18, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_astdimport on */; -CHECK_NEW_parser_nodes__AStdImport(var18); -var_pimportnode1 = var18; -var_node_list = var_pimportnode1; -var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction67#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) { -parser__ReduceAction67__action(self, p0); +/* method parser#ReduceAction151#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction151__action(val* self, val* p0) { +parser__ReduceAction151__action(self, p0); /* Direct call parser#ReduceAction151#action on */ RET_LABEL:; } -/* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */ -void parser__ReduceAction68__action(val* self, val* p0) { +/* method parser#ReduceAction152#action for (self: ReduceAction152, Parser) */ +void parser__ReduceAction152__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_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */; -short int var7 /* : Bool */; +val* var9 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_tkwendnode4 /* var tkwendnode4: nullable Object */; +val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var14 /* : ANoImport */; -val* var_pimportnode1 /* var pimportnode1: nullable ANoImport */; -long var15 /* : Int */; -long var16 /* : Int */; +val* var_listnode4 /* var listnode4: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : Array[Object] */; +val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : AType */; +val* var_ptypenode1 /* var ptypenode1: nullable AType */; +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_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; -} else { -if(cltype >= var_pvisibilitynode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype; +{ +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); } -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4123); -exit(1); +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -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_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; +var9 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on */; +} +var_listnode5 = var9; +var_tkwnullablenode2 = var_nodearraylist1; +/* isa nullable TKwnullable */ +cltype = type_nullable_parser_nodes__TKwnullable.color; +idtype = type_nullable_parser_nodes__TKwnullable.id; +if(var_tkwnullablenode2 == NULL) { +var10 = 1; } else { -if(cltype9 >= var_tkwimportnode3->type->table_size) { -var8 = 0; +if(cltype >= var_tkwnullablenode2->type->table_size) { +var10 = 0; } else { -var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10; +var10 = var_tkwnullablenode2->type->type_table[cltype] == idtype; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4125); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5269); +show_backtrace(1); } -var_tkwendnode4 = var_nodearraylist5; -/* isa nullable TKwend */ -cltype12 = type_nullable_parser_nodes__TKwend.color; -idtype13 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode4 == NULL) { +var_tclassidnode3 = var_nodearraylist2; +/* isa nullable TClassid */ +cltype12 = type_nullable_parser_nodes__TClassid.color; +idtype13 = type_nullable_parser_nodes__TClassid.id; +if(var_tclassidnode3 == NULL) { var11 = 1; } else { -if(cltype12 >= var_tkwendnode4->type->table_size) { +if(cltype12 >= var_tclassidnode3->type->table_size) { var11 = 0; } else { -var11 = var_tkwendnode4->type->type_table[cltype12] == idtype13; +var11 = var_tclassidnode3->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5271); +show_backtrace(1); +} +var_listnode4 = var_nodearraylist5; +/* isa Array[Object] */ +cltype15 = type_array__Arraykernel__Object.color; +idtype16 = type_array__Arraykernel__Object.id; +if(var_listnode4 == NULL) { +var14 = 0; +} else { +if(cltype15 >= var_listnode4->type->table_size) { +var14 = 0; +} else { +var14 = var_listnode4->type->type_table[cltype15] == idtype16; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4127); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5273); +show_backtrace(1); +} +{ +var17 = parser_work__ReduceAction__concat(self, var_listnode5, var_listnode4); +} +var_listnode5 = var17; +var_pannotationsnode6 = var_nodearraylist8; +/* isa nullable AAnnotations */ +cltype19 = type_nullable_parser_nodes__AAnnotations.color; +idtype20 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_pannotationsnode6->type->table_size) { +var18 = 0; +} else { +var18 = var_pannotationsnode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5276); +show_backtrace(1); +} +var21 = NEW_parser_nodes__AType(&type_parser_nodes__AType); +{ +parser_prod__AType__init_atype(var21, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var_pannotationsnode6); /* Direct call parser_prod#AType#init_atype on */ +} +var_ptypenode1 = var21; +var_node_list = var_ptypenode1; +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 */ } -var14 = NEW_parser_nodes__ANoImport(&type_parser_nodes__ANoImport); -((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ANoImport__init_anoimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_tkwendnode4) /* init_anoimport on */; -CHECK_NEW_parser_nodes__ANoImport(var14); -var_pimportnode1 = var14; -var_node_list = var_pimportnode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction68#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction68__action(val* self, val* p0) { -parser__ReduceAction68__action(self, p0); +/* method parser#ReduceAction152#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction152__action(val* self, val* p0) { +parser__ReduceAction152__action(self, p0); /* Direct call parser#ReduceAction152#action on */ RET_LABEL:; } -/* method parser#ReduceAction69#action for (self: ReduceAction69, Parser) */ -void parser__ReduceAction69__action(val* self, val* p0) { +/* method parser#ReduceAction153#action for (self: ReduceAction153, Parser) */ +void parser__ReduceAction153__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* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var4 /* : null */; +val* var_listnode2 /* var listnode2: Array[Object] */; +val* var_ptypenode1 /* var ptypenode1: nullable Object */; +val* var3 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -val* var6 /* : AMainClassdef */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AMainClassdef */; +long var6 /* : Int */; 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 */; +{ +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; -var_ppropdefnode2 = var_nodearraylist1; -/* isa nullable APropdef */ -cltype = type_nullable_parser_nodes__APropdef.color; -idtype = type_nullable_parser_nodes__APropdef.id; -if(var_ppropdefnode2 == NULL) { -var3 = 1; -} else { -if(cltype >= var_ppropdefnode2->type->table_size) { -var3 = 0; +{ +((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on */; +} +var_listnode2 = var2; +var_ptypenode1 = var_nodearraylist1; +var3 = NULL; +if (var_ptypenode1 == NULL) { +var4 = 0; /* is null */ } else { -var3 = var_ppropdefnode2->type->type_table[cltype] == idtype; +var4 = 1; /* arg is null and recv is not */ } +if (0) { +var5 = ((short int (*)(val*, val*))(var_ptypenode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_ptypenode1, var3) /* != on */; +var4 = var5; } -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4145); -exit(1); +if (var4){ +{ +array__Array__add(var_listnode2, var_ptypenode1); /* Direct call array#Array#add on */ } -var4 = NULL; -if (var_ppropdefnode2 == NULL) { -var5 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ } -if (var5){ -((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on */; -} else { +var_node_list = var_listnode2; +var6 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var7 = parser_work__Parser__go_to(var_p, var6); +} +{ +parser_work__Parser__push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on */ } -var6 = NEW_parser_nodes__AMainClassdef(&type_parser_nodes__AMainClassdef); -((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AMainClassdef__init_amainclassdef]))(var6, var_listnode3) /* init_amainclassdef on */; -CHECK_NEW_parser_nodes__AMainClassdef(var6); -var_pclassdefnode1 = var6; -var_node_list = var_pclassdefnode1; -var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction69#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction69__action(val* self, val* p0) { -parser__ReduceAction69__action(self, p0); +/* method parser#ReduceAction153#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction153__action(val* self, val* p0) { +parser__ReduceAction153__action(self, p0); /* Direct call parser#ReduceAction153#action on */ RET_LABEL:; } -/* method parser#ReduceAction70#action for (self: ReduceAction70, Parser) */ -void parser__ReduceAction70__action(val* self, val* p0) { +/* method parser#ReduceAction154#action for (self: ReduceAction154, Parser) */ +void parser__ReduceAction154__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* var2 /* : null */; +val* var3 /* : Array[Object] */; +val* var_listnode3 /* var listnode3: Array[Object] */; +val* var_ptypenode1 /* var ptypenode1: nullable Object */; +val* var_listnode2 /* var listnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var5 /* : null */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : Array[Object] */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; +} +var_listnode3 = var3; +var_ptypenode1 = var_nodearraylist1; +var_listnode2 = var_nodearraylist2; +/* isa Array[Object] */ +cltype = type_array__Arraykernel__Object.color; +idtype = type_array__Arraykernel__Object.id; +if(var_listnode2 == NULL) { +var4 = 0; +} else { +if(cltype >= var_listnode2->type->table_size) { +var4 = 0; +} else { +var4 = var_listnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5312); +show_backtrace(1); +} +var5 = NULL; +if (var_ptypenode1 == NULL) { +var6 = 0; /* is null */ +} else { +var6 = 1; /* arg is null and recv is not */ +} +if (0) { +var7 = ((short int (*)(val*, val*))(var_ptypenode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_ptypenode1, var5) /* != on */; +var6 = var7; +} +if (var6){ +{ +array__Array__add(var_listnode3, var_ptypenode1); /* Direct call array#Array#add on */ +} +} else { +} +{ +var8 = parser_work__ReduceAction__concat(self, var_listnode3, var_listnode2); +} +var_listnode3 = var8; +var_node_list = var_listnode3; +var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var10 = parser_work__Parser__go_to(var_p, var9); +} +{ +parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction154#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction154__action(val* self, val* p0) { +parser__ReduceAction154__action(self, p0); /* Direct call parser#ReduceAction154#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction155#action for (self: ReduceAction155, Parser) */ +void parser__ReduceAction155__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_ptypenode1 /* var ptypenode1: nullable Object */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var_ptypenode1 = var_nodearraylist3; +var_node_list = var_ptypenode1; +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#ReduceAction155#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction155__action(val* self, val* p0) { +parser__ReduceAction155__action(self, p0); /* Direct call parser#ReduceAction155#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction159#action for (self: ReduceAction159, Parser) */ +void parser__ReduceAction159__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_pexprnode1 /* var pexprnode1: 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_nodearraylist1 = var1; -var2 = NULL; -var_node_list = var2; -var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on */; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_pexprnode1 = var_nodearraylist2; +var_node_list = var_pexprnode1; +var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = parser_work__Parser__go_to(var_p, var3); +} +{ +parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction159#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction159__action(val* self, val* p0) { +parser__ReduceAction159__action(self, p0); /* Direct call parser#ReduceAction159#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction160#action for (self: ReduceAction160, Parser) */ +void parser__ReduceAction160__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_tkwendnode3 /* var tkwendnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var5 /* : ABlockExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var6 /* : Int */; +long var7 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; +} +var_listnode2 = var3; +var_tkwendnode3 = var_nodearraylist2; +/* isa nullable TKwend */ +cltype = type_nullable_parser_nodes__TKwend.color; +idtype = type_nullable_parser_nodes__TKwend.id; +if(var_tkwendnode3 == NULL) { +var4 = 1; +} else { +if(cltype >= var_tkwendnode3->type->table_size) { +var4 = 0; +} else { +var4 = var_tkwendnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5355); +show_backtrace(1); +} +var5 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +{ +parser_prod__ABlockExpr__init_ablockexpr(var5, var_listnode2, var_tkwendnode3); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var5; +var_node_list = var_pexprnode1; +var6 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var7 = parser_work__Parser__go_to(var_p, var6); +} +{ +parser_work__Parser__push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction160#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction160__action(val* self, val* p0) { +parser__ReduceAction160__action(self, p0); /* Direct call parser#ReduceAction160#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction161#action for (self: ReduceAction161, Parser) */ +void parser__ReduceAction161__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_listnode2 /* var listnode2: Array[Object] */; +val* var_tkwendnode3 /* var tkwendnode3: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var4 /* : ABlockExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +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; +var2 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on */; +} +var_listnode2 = var2; +var_tkwendnode3 = var_nodearraylist1; +/* isa nullable TKwend */ +cltype = type_nullable_parser_nodes__TKwend.color; +idtype = type_nullable_parser_nodes__TKwend.id; +if(var_tkwendnode3 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwendnode3->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwendnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5372); +show_backtrace(1); +} +var4 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +{ +parser_prod__ABlockExpr__init_ablockexpr(var4, var_listnode2, var_tkwendnode3); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var4; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction161#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction161__action(val* self, val* p0) { +parser__ReduceAction161__action(self, p0); /* Direct call parser#ReduceAction161#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction162#action for (self: ReduceAction162, Parser) */ +void parser__ReduceAction162__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_pexprnode1 /* var pexprnode1: 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_pexprnode1 = var_nodearraylist1; +var_node_list = var_pexprnode1; +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#ReduceAction162#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction162__action(val* self, val* p0) { +parser__ReduceAction162__action(self, p0); /* Direct call parser#ReduceAction162#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction163#action for (self: ReduceAction163, Parser) */ +void parser__ReduceAction163__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* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var4 /* : null */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var11 /* : ABlockExpr */; +val* var12 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var13 /* : Int */; +long var14 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var2 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on */; +} +var_listnode3 = var2; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var3 = 0; +} else { +var3 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5400); +show_backtrace(1); +} +var4 = NULL; +if (var_pexprnode2 == NULL) { +var5 = 0; /* is null */ +} else { +var5 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var4) on */ +var_other = var4; +{ +var9 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var8 = var9; +} +var10 = !var8; +var6 = var10; +goto RET_LABEL7; +RET_LABEL7:(void)0; +} +var5 = var6; +} +if (var5){ +{ +array__Array__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +var12 = NULL; +{ +parser_prod__ABlockExpr__init_ablockexpr(var11, var_listnode3, var12); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var14 = parser_work__Parser__go_to(var_p, var13); +} +{ +parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction163#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction163__action(val* self, val* p0) { +parser__ReduceAction163__action(self, p0); /* Direct call parser#ReduceAction163#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction164#action for (self: ReduceAction164, Parser) */ +void parser__ReduceAction164__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* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : null */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +val* var15 /* : Array[Object] */; +val* var16 /* : ABlockExpr */; +val* var17 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var18 /* : Int */; +long var19 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; +} +var_listnode4 = var3; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var4 = 0; +} else { +var4 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5421); +show_backtrace(1); +} +var_listnode3 = var_nodearraylist2; +/* isa Array[Object] */ +cltype6 = type_array__Arraykernel__Object.color; +idtype7 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var5 = 0; +} else { +if(cltype6 >= var_listnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_listnode3->type->type_table[cltype6] == idtype7; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5423); +show_backtrace(1); +} +var8 = NULL; +if (var_pexprnode2 == NULL) { +var9 = 0; /* is null */ +} else { +var9 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var8) on */ +var_other = var8; +{ +var13 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var12 = var13; +} +var14 = !var12; +var10 = var14; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +var9 = var10; +} +if (var9){ +{ +array__Array__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +{ +var15 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var15; +var16 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +var17 = NULL; +{ +parser_prod__ABlockExpr__init_ablockexpr(var16, var_listnode4, var17); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var16; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); +} +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction164#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction164__action(val* self, val* p0) { +parser__ReduceAction164__action(self, p0); /* Direct call parser#ReduceAction164#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction165#action for (self: ReduceAction165, Parser) */ +void parser__ReduceAction165__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_pexprnode2 /* var pexprnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var5 /* : null */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var12 /* : ABlockExpr */; +val* var13 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on */; +} +var_listnode3 = var3; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var4 = 0; +} else { +var4 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5445); +show_backtrace(1); +} +var5 = NULL; +if (var_pexprnode2 == NULL) { +var6 = 0; /* is null */ +} else { +var6 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var5) on */ +var_other = var5; +{ +var10 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var9 = var10; +} +var11 = !var9; +var7 = var11; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +if (var6){ +{ +array__Array__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +var12 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +var13 = NULL; +{ +parser_prod__ABlockExpr__init_ablockexpr(var12, var_listnode3, var13); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var12; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var15 = parser_work__Parser__go_to(var_p, var14); +} +{ +parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction165#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction165__action(val* self, val* p0) { +parser__ReduceAction165__action(self, p0); /* Direct call parser#ReduceAction165#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction166#action for (self: ReduceAction166, Parser) */ +void parser__ReduceAction166__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* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_listnode3 /* var listnode3: 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 /* : Array[Object] */; +val* var17 /* : ABlockExpr */; +val* var18 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var19 /* : Int */; +long var20 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on */; +} +var_listnode4 = var4; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var5 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; +} else { +var5 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5467); +show_backtrace(1); +} +var_listnode3 = var_nodearraylist2; +/* isa Array[Object] */ +cltype7 = type_array__Arraykernel__Object.color; +idtype8 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var6 = 0; +} else { +if(cltype7 >= var_listnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_listnode3->type->type_table[cltype7] == idtype8; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5469); +show_backtrace(1); +} +var9 = NULL; +if (var_pexprnode2 == NULL) { +var10 = 0; /* is null */ +} else { +var10 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var9) on */ +var_other = var9; +{ +var14 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var13 = var14; +} +var15 = !var13; +var11 = var15; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +var10 = var11; +} +if (var10){ +{ +array__Array__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +{ +var16 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var16; +var17 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +var18 = NULL; +{ +parser_prod__ABlockExpr__init_ablockexpr(var17, var_listnode4, var18); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var17; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction166#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction166__action(val* self, val* p0) { +parser__ReduceAction166__action(self, p0); /* Direct call parser#ReduceAction166#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction167#action for (self: ReduceAction167, Parser) */ +void parser__ReduceAction167__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* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var6 /* : null */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +val* var_tkwendnode4 /* var tkwendnode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : ABlockExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var17 /* : Int */; +long var18 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on */; +} +var_listnode3 = var4; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var5 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; +} else { +var5 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5492); +show_backtrace(1); +} +var6 = NULL; +if (var_pexprnode2 == NULL) { +var7 = 0; /* is null */ +} else { +var7 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var6) on */ +var_other = var6; +{ +var11 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var10 = var11; +} +var12 = !var10; +var8 = var12; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +var7 = var8; +} +if (var7){ +{ +array__Array__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +var_tkwendnode4 = var_nodearraylist3; +/* isa nullable TKwend */ +cltype14 = type_nullable_parser_nodes__TKwend.color; +idtype15 = type_nullable_parser_nodes__TKwend.id; +if(var_tkwendnode4 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_tkwendnode4->type->table_size) { +var13 = 0; +} else { +var13 = var_tkwendnode4->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5497); +show_backtrace(1); +} +var16 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +{ +parser_prod__ABlockExpr__init_ablockexpr(var16, var_listnode3, var_tkwendnode4); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var16; +var_node_list = var_pexprnode1; +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#ReduceAction167#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction167__action(val* self, val* p0) { +parser__ReduceAction167__action(self, p0); /* Direct call parser#ReduceAction167#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction168#action for (self: ReduceAction168, Parser) */ +void parser__ReduceAction168__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* var_pexprnode2 /* var pexprnode2: 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 /* : null */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +val* var17 /* : Array[Object] */; +val* var_tkwendnode5 /* var tkwendnode5: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : ABlockExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +long var22 /* : Int */; +long var23 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +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_listnode4 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var6 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5517); +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; +} else { +if(cltype8 >= var_listnode3->type->table_size) { +var7 = 0; +} else { +var7 = var_listnode3->type->type_table[cltype8] == idtype9; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5519); +show_backtrace(1); +} +var10 = NULL; +if (var_pexprnode2 == NULL) { +var11 = 0; /* is null */ +} else { +var11 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_pexprnode2,var10) on */ +var_other = var10; +{ +var15 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var14 = var15; +} +var16 = !var14; +var12 = var16; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +var11 = var12; +} +if (var11){ +{ +array__Array__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +} +} else { +} +{ +var17 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var17; +var_tkwendnode5 = var_nodearraylist4; +/* isa nullable TKwend */ +cltype19 = type_nullable_parser_nodes__TKwend.color; +idtype20 = type_nullable_parser_nodes__TKwend.id; +if(var_tkwendnode5 == NULL) { +var18 = 1; +} else { +if(cltype19 >= var_tkwendnode5->type->table_size) { +var18 = 0; +} else { +var18 = var_tkwendnode5->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5525); +show_backtrace(1); +} +var21 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr); +{ +parser_prod__ABlockExpr__init_ablockexpr(var21, var_listnode4, var_tkwendnode5); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +} +var_pexprnode1 = var21; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction168#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction168__action(val* self, val* p0) { +parser__ReduceAction168__action(self, p0); /* Direct call parser#ReduceAction168#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction172#action for (self: ReduceAction172, Parser) */ +void parser__ReduceAction172__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_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AReturnExpr */; +val* var4 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */; +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_tkwreturnnode2 = var_nodearraylist1; +/* isa nullable TKwreturn */ +cltype = type_nullable_parser_nodes__TKwreturn.color; +idtype = type_nullable_parser_nodes__TKwreturn.id; +if(var_tkwreturnnode2 == NULL) { +var2 = 1; +} else { +if(cltype >= var_tkwreturnnode2->type->table_size) { +var2 = 0; +} else { +var2 = var_tkwreturnnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5541); +show_backtrace(1); +} +var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr); +var4 = NULL; +{ +parser_prod__AReturnExpr__init_areturnexpr(var3, var_tkwreturnnode2, var4); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on */ +} +var_pexprnode1 = var3; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction172#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction172__action(val* self, val* p0) { +parser__ReduceAction172__action(self, p0); /* Direct call parser#ReduceAction172#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction173#action for (self: ReduceAction173, Parser) */ +void parser__ReduceAction173__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_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AReturnExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */; +long var8 /* : Int */; +long var9 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwreturnnode2 = var_nodearraylist1; +/* isa nullable TKwreturn */ +cltype = type_nullable_parser_nodes__TKwreturn.color; +idtype = type_nullable_parser_nodes__TKwreturn.id; +if(var_tkwreturnnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwreturnnode2->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwreturnnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5558); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype5 = type_nullable_parser_nodes__AExpr.color; +idtype6 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var4 = 1; +} else { +if(cltype5 >= var_pexprnode3->type->table_size) { +var4 = 0; +} else { +var4 = var_pexprnode3->type->type_table[cltype5] == idtype6; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5560); +show_backtrace(1); +} +var7 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr); +{ +parser_prod__AReturnExpr__init_areturnexpr(var7, var_tkwreturnnode2, var_pexprnode3); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on */ +} +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); +} +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction173#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction173__action(val* self, val* p0) { +parser__ReduceAction173__action(self, p0); /* Direct call parser#ReduceAction173#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction174#action for (self: ReduceAction174, Parser) */ +void parser__ReduceAction174__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_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : ABreakExpr */; +val* var4 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */; +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_tkwbreaknode2 = var_nodearraylist1; +/* isa nullable TKwbreak */ +cltype = type_nullable_parser_nodes__TKwbreak.color; +idtype = type_nullable_parser_nodes__TKwbreak.id; +if(var_tkwbreaknode2 == NULL) { +var2 = 1; +} else { +if(cltype >= var_tkwbreaknode2->type->table_size) { +var2 = 0; +} else { +var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5576); +show_backtrace(1); +} +var3 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr); +var4 = NULL; +{ +parser_prod__ABreakExpr__init_abreakexpr(var3, var_tkwbreaknode2, var4); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on */ +} +var_pexprnode1 = var3; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction174#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction174__action(val* self, val* p0) { +parser__ReduceAction174__action(self, p0); /* Direct call parser#ReduceAction174#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction175#action for (self: ReduceAction175, Parser) */ +void parser__ReduceAction175__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_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_plabelnode3 /* var plabelnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : ABreakExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */; +long var8 /* : Int */; +long var9 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwbreaknode2 = var_nodearraylist1; +/* isa nullable TKwbreak */ +cltype = type_nullable_parser_nodes__TKwbreak.color; +idtype = type_nullable_parser_nodes__TKwbreak.id; +if(var_tkwbreaknode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwbreaknode2->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5593); +show_backtrace(1); +} +var_plabelnode3 = var_nodearraylist2; +/* isa nullable ALabel */ +cltype5 = type_nullable_parser_nodes__ALabel.color; +idtype6 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode3 == NULL) { +var4 = 1; +} else { +if(cltype5 >= var_plabelnode3->type->table_size) { +var4 = 0; +} else { +var4 = var_plabelnode3->type->type_table[cltype5] == idtype6; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5595); +show_backtrace(1); +} +var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr); +{ +parser_prod__ABreakExpr__init_abreakexpr(var7, var_tkwbreaknode2, var_plabelnode3); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on */ +} +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); +} +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction175#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction175__action(val* self, val* p0) { +parser__ReduceAction175__action(self, p0); /* Direct call parser#ReduceAction175#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction176#action for (self: ReduceAction176, Parser) */ +void parser__ReduceAction176__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_tkwabortnode2 /* var tkwabortnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AAbortExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAbortExpr */; +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_tkwabortnode2 = var_nodearraylist1; +/* isa nullable TKwabort */ +cltype = type_nullable_parser_nodes__TKwabort.color; +idtype = type_nullable_parser_nodes__TKwabort.id; +if(var_tkwabortnode2 == NULL) { +var2 = 1; +} else { +if(cltype >= var_tkwabortnode2->type->table_size) { +var2 = 0; +} else { +var2 = var_tkwabortnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5611); +show_backtrace(1); +} +var3 = NEW_parser_nodes__AAbortExpr(&type_parser_nodes__AAbortExpr); +{ +parser_prod__AAbortExpr__init_aabortexpr(var3, var_tkwabortnode2); /* Direct call parser_prod#AAbortExpr#init_aabortexpr on */ +} +var_pexprnode1 = var3; +var_node_list = var_pexprnode1; +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#ReduceAction176#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction176__action(val* self, val* p0) { +parser__ReduceAction176__action(self, p0); /* Direct call parser#ReduceAction176#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction177#action for (self: ReduceAction177, Parser) */ +void parser__ReduceAction177__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_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : AContinueExpr */; +val* var4 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */; +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_tkwcontinuenode2 = var_nodearraylist1; +/* isa nullable TKwcontinue */ +cltype = type_nullable_parser_nodes__TKwcontinue.color; +idtype = type_nullable_parser_nodes__TKwcontinue.id; +if(var_tkwcontinuenode2 == NULL) { +var2 = 1; +} else { +if(cltype >= var_tkwcontinuenode2->type->table_size) { +var2 = 0; +} else { +var2 = var_tkwcontinuenode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5626); +show_backtrace(1); +} +var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr); +var4 = NULL; +{ +parser_prod__AContinueExpr__init_acontinueexpr(var3, var_tkwcontinuenode2, var4); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on */ +} +var_pexprnode1 = var3; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; +} +/* method parser#ReduceAction177#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction177__action(val* self, val* p0) { +parser__ReduceAction177__action(self, p0); /* Direct call parser#ReduceAction177#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction178#action for (self: ReduceAction178, Parser) */ +void parser__ReduceAction178__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_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_plabelnode3 /* var plabelnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AContinueExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */; +long var8 /* : Int */; +long var9 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwcontinuenode2 = var_nodearraylist1; +/* isa nullable TKwcontinue */ +cltype = type_nullable_parser_nodes__TKwcontinue.color; +idtype = type_nullable_parser_nodes__TKwcontinue.id; +if(var_tkwcontinuenode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwcontinuenode2->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5643); +show_backtrace(1); +} +var_plabelnode3 = var_nodearraylist2; +/* isa nullable ALabel */ +cltype5 = type_nullable_parser_nodes__ALabel.color; +idtype6 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode3 == NULL) { +var4 = 1; +} else { +if(cltype5 >= var_plabelnode3->type->table_size) { +var4 = 0; +} else { +var4 = var_plabelnode3->type->type_table[cltype5] == idtype6; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5645); +show_backtrace(1); +} +var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr); +{ +parser_prod__AContinueExpr__init_acontinueexpr(var7, var_tkwcontinuenode2, var_plabelnode3); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on */ +} +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); +} +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction178#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction178__action(val* self, val* p0) { +parser__ReduceAction178__action(self, p0); /* Direct call parser#ReduceAction178#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction185#action for (self: ReduceAction185, Parser) */ +void parser__ReduceAction185__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var6 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5665); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype8 = type_nullable_parser_nodes__TId.color; +idtype9 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= var_tidnode3->type->table_size) { +var7 = 0; +} else { +var7 = var_tidnode3->type->type_table[cltype8] == idtype9; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5667); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype11 = type_nullable_parser_nodes__AExprs.color; +idtype12 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_pexprsnode4->type->table_size) { +var10 = 0; +} else { +var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5669); +show_backtrace(1); +} +var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var13; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var15 = parser_work__Parser__go_to(var_p, var14); +} +{ +parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction185#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction185__action(val* self, val* p0) { +parser__ReduceAction185__action(self, p0); /* Direct call parser#ReduceAction185#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction186#action for (self: ReduceAction186, Parser) */ +void parser__ReduceAction186__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* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var15 /* : Int */; +long var16 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +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; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var7 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var7 = 0; +} else { +var7 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5691); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype9 = type_nullable_parser_nodes__TId.color; +idtype10 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; +} else { +if(cltype9 >= var_tidnode3->type->table_size) { +var8 = 0; +} else { +var8 = var_tidnode3->type->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5693); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype12 = type_nullable_parser_nodes__AExprs.color; +idtype13 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_pexprsnode4->type->table_size) { +var11 = 0; +} else { +var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5695); +show_backtrace(1); +} +var14 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = parser_work__Parser__go_to(var_p, var15); +} +{ +parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction186#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction186__action(val* self, val* p0) { +parser__ReduceAction186__action(self, p0); /* Direct call parser#ReduceAction186#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction187#action for (self: ReduceAction187, Parser) */ +void parser__ReduceAction187__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var16 /* : Int */; +long var17 /* : 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_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; +} else { +var8 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5718); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; +} else { +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; +} else { +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5720); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype13 = type_nullable_parser_nodes__AExprs.color; +idtype14 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var12 = 1; +} else { +if(cltype13 >= var_pexprsnode4->type->table_size) { +var12 = 0; +} else { +var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5722); +show_backtrace(1); +} +var15 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); +} +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction187#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction187__action(val* self, val* p0) { +parser__ReduceAction187__action(self, p0); /* Direct call parser#ReduceAction187#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction189#action for (self: ReduceAction189, Parser) */ +void parser__ReduceAction189__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on */ +RET_LABEL4:(void)0; +} +} +var_pexprnode2 = var3; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var5 = 1; +} else { +if(cltype >= var_tidnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_tidnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5741); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype7 = type_nullable_parser_nodes__AExprs.color; +idtype8 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var6 = 1; +} else { +if(cltype7 >= var_pexprsnode4->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5743); +show_backtrace(1); +} +var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +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#ReduceAction189#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction189__action(val* self, val* p0) { +parser__ReduceAction189__action(self, p0); /* Direct call parser#ReduceAction189#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction190#action for (self: ReduceAction190, Parser) */ +void parser__ReduceAction190__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var11 /* : Int */; +long var12 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ +RET_LABEL5:(void)0; +} +} +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var6 = 1; +} else { +if(cltype >= var_tidnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_tidnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5763); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype8 = type_nullable_parser_nodes__AExprs.color; +idtype9 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var7 = 1; +} else { +if(cltype8 >= var_pexprsnode4->type->table_size) { +var7 = 0; +} else { +var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5765); +show_backtrace(1); +} +var10 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var12 = parser_work__Parser__go_to(var_p, var11); +} +{ +parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction190#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction190__action(val* self, val* p0) { +parser__ReduceAction190__action(self, p0); /* Direct call parser#ReduceAction190#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction191#action for (self: ReduceAction191, Parser) */ +void parser__ReduceAction191__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype; +int idtype; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var12 /* : Int */; +long var13 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; +} else { +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; +} else { +var7 = var_tidnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5786); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype9 = type_nullable_parser_nodes__AExprs.color; +idtype10 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var8 = 1; +} else { +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; +} else { +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5788); +show_backtrace(1); +} +var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr); +{ +parser_prod__ACallExpr__init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +} +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +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#ReduceAction191#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction191__action(val* self, val* p0) { +parser__ReduceAction191__action(self, p0); /* Direct call parser#ReduceAction191#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction193#action for (self: ReduceAction193, Parser) */ +void parser__ReduceAction193__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pqualifiednode2 /* var pqualifiednode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : ASuperExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */; +long var12 /* : Int */; +long var13 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var_pqualifiednode2 = var_nodearraylist1; +/* isa nullable AQualified */ +cltype = type_nullable_parser_nodes__AQualified.color; +idtype = type_nullable_parser_nodes__AQualified.id; +if(var_pqualifiednode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_pqualifiednode2->type->table_size) { +var4 = 0; +} else { +var4 = var_pqualifiednode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5807); +show_backtrace(1); +} +var_tkwsupernode3 = var_nodearraylist2; +/* isa nullable TKwsuper */ +cltype6 = type_nullable_parser_nodes__TKwsuper.color; +idtype7 = type_nullable_parser_nodes__TKwsuper.id; +if(var_tkwsupernode3 == NULL) { +var5 = 1; +} else { +if(cltype6 >= var_tkwsupernode3->type->table_size) { +var5 = 0; +} else { +var5 = var_tkwsupernode3->type->type_table[cltype6] == idtype7; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5809); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype9 = type_nullable_parser_nodes__AExprs.color; +idtype10 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var8 = 1; +} else { +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; +} else { +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5811); +show_backtrace(1); +} +var11 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr); +{ +parser_prod__ASuperExpr__init_asuperexpr(var11, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on */ +} +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +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#ReduceAction193#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction193__action(val* self, val* p0) { +parser__ReduceAction193__action(self, p0); /* Direct call parser#ReduceAction193#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction194#action for (self: ReduceAction194, Parser) */ +void parser__ReduceAction194__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var6 = 1; +} else { +if(cltype >= var_pexprnode2->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5832); +show_backtrace(1); +} +var_tkwinitnode3 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype8 = type_nullable_parser_nodes__TKwinit.color; +idtype9 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= var_tkwinitnode3->type->table_size) { +var7 = 0; +} else { +var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9; +} +} +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5834); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype11 = type_nullable_parser_nodes__AExprs.color; +idtype12 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_pexprsnode4->type->table_size) { +var10 = 0; +} else { +var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5836); +show_backtrace(1); +} +var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +} +var_pexprnode1 = var13; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var15 = parser_work__Parser__go_to(var_p, var14); +} +{ +parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +} RET_LABEL:; } -/* method parser#ReduceAction70#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction70__action(val* self, val* p0) { -parser__ReduceAction70__action(self, p0); +/* method parser#ReduceAction194#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction194__action(val* self, val* p0) { +parser__ReduceAction194__action(self, p0); /* Direct call parser#ReduceAction194#action on */ RET_LABEL:; } -/* method parser#ReduceAction71#action for (self: ReduceAction71, Parser) */ -void parser__ReduceAction71__action(val* self, val* p0) { +/* method parser#ReduceAction195#action for (self: ReduceAction195, Parser) */ +void parser__ReduceAction195__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -624,58 +3261,230 @@ val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var3 /* : Bool */; +val* var3 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var4 /* : AMainMethPropdef */; -val* var5 /* : null */; -val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMainMethPropdef */; -long var6 /* : Int */; -long var7 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var2; -var_pexprnode3 = var_nodearraylist2; -/* isa nullable AExpr */ +var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on */ +RET_LABEL4:(void)0; +} +} +var_pexprnode2 = var3; +var_tkwinitnode3 = var_nodearraylist1; +/* isa nullable TKwinit */ +cltype = type_nullable_parser_nodes__TKwinit.color; +idtype = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var5 = 1; +} else { +if(cltype >= var_tkwinitnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_tkwinitnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5855); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype7 = type_nullable_parser_nodes__AExprs.color; +idtype8 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var6 = 1; +} else { +if(cltype7 >= var_pexprsnode4->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5857); +show_backtrace(1); +} +var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +} +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +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#ReduceAction195#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction195__action(val* self, val* p0) { +parser__ReduceAction195__action(self, p0); /* Direct call parser#ReduceAction195#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction196#action for (self: ReduceAction196, Parser) */ +void parser__ReduceAction196__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* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; +int cltype; +int idtype; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var15 /* : Int */; +long var16 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +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; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ cltype = type_nullable_parser_nodes__AExpr.color; idtype = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var3 = 1; +if(var_pexprnode2 == NULL) { +var7 = 1; } else { -if(cltype >= var_pexprnode3->type->table_size) { -var3 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var7 = 0; } else { -var3 = var_pexprnode3->type->type_table[cltype] == idtype; +var7 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4174); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5879); +show_backtrace(1); +} +var_tkwinitnode3 = var_nodearraylist5; +/* isa nullable TKwinit */ +cltype9 = type_nullable_parser_nodes__TKwinit.color; +idtype10 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var8 = 1; +} else { +if(cltype9 >= var_tkwinitnode3->type->table_size) { +var8 = 0; +} else { +var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5881); +show_backtrace(1); +} +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype12 = type_nullable_parser_nodes__AExprs.color; +idtype13 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_pexprsnode4->type->table_size) { +var11 = 0; +} else { +var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5883); +show_backtrace(1); +} +var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +} +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = parser_work__Parser__go_to(var_p, var15); +} +{ +parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } -var4 = NEW_parser_nodes__AMainMethPropdef(&type_parser_nodes__AMainMethPropdef); -var5 = NULL; -((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AMainMethPropdef__init_amainmethpropdef]))(var4, var5, var_pexprnode3) /* init_amainmethpropdef on */; -CHECK_NEW_parser_nodes__AMainMethPropdef(var4); -var_ppropdefnode1 = var4; -var_node_list = var_ppropdefnode1; -var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction71#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction71__action(val* self, val* p0) { -parser__ReduceAction71__action(self, p0); +/* method parser#ReduceAction196#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction196__action(val* self, val* p0) { +parser__ReduceAction196__action(self, p0); /* Direct call parser#ReduceAction196#action on */ RET_LABEL:; } -/* method parser#ReduceAction73#action for (self: ReduceAction73, Parser) */ -void parser__ReduceAction73__action(val* self, val* p0) { +/* method parser#ReduceAction197#action for (self: ReduceAction197, Parser) */ +void parser__ReduceAction197__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -693,2623 +3502,1944 @@ val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var8 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var9 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var11 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var24 /* : AStdClassdef */; -val* var25 /* : null */; -val* var26 /* : null */; -val* var27 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var28 /* : Int */; -long var29 /* : Int */; +val* var15 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +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_nodearraylist7 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist6 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var5 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var6 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var7 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = 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_listnode7 = 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_listnode10 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode11 = var10; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var11 = 1; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var11 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; +} else { +var8 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5906); +show_backtrace(1); +} +var_tkwinitnode3 = var_nodearraylist6; +/* isa nullable TKwinit */ +cltype10 = type_nullable_parser_nodes__TKwinit.color; +idtype11 = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var9 = 1; +} else { +if(cltype10 >= var_tkwinitnode3->type->table_size) { +var9 = 0; } else { -var11 = var_pdocnode2->type->type_table[cltype] == idtype; +var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11; } } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4199); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5908); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype13 = type_nullable_parser_nodes__AVisibility.color; -idtype14 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype13 = type_nullable_parser_nodes__AExprs.color; +idtype14 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { var12 = 1; } else { -if(cltype13 >= var_pvisibilitynode4->type->table_size) { +if(cltype13 >= var_pexprsnode4->type->table_size) { var12 = 0; } else { -var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14; +var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4201); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5910); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype16 = type_nullable_parser_nodes__AClasskind.color; -idtype17 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var15 = 1; +var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +} +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); +} +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction197#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction197__action(val* self, val* p0) { +parser__ReduceAction197__action(self, p0); /* Direct call parser#ReduceAction197#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction199#action for (self: ReduceAction199, Parser) */ +void parser__ReduceAction199__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var11 /* : Int */; +long var12 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ +RET_LABEL5:(void)0; +} +} +var_pexprnode2 = var4; +var_tkwinitnode3 = var_nodearraylist2; +/* isa nullable TKwinit */ +cltype = type_nullable_parser_nodes__TKwinit.color; +idtype = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var6 = 1; } else { -if(cltype16 >= var_pclasskindnode5->type->table_size) { -var15 = 0; +if(cltype >= var_tkwinitnode3->type->table_size) { +var6 = 0; } else { -var15 = var_pclasskindnode5->type->type_table[cltype16] == idtype17; +var6 = var_tkwinitnode3->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4203); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5930); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype19 = type_nullable_parser_nodes__TClassid.color; -idtype20 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var18 = 1; +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype8 = type_nullable_parser_nodes__AExprs.color; +idtype9 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var7 = 1; } else { -if(cltype19 >= var_tclassidnode6->type->table_size) { -var18 = 0; +if(cltype8 >= var_pexprsnode4->type->table_size) { +var7 = 0; } else { -var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20; +var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4205); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5932); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist7; -/* isa nullable TKwend */ -cltype22 = type_nullable_parser_nodes__TKwend.color; -idtype23 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_tkwendnode12->type->table_size) { -var21 = 0; -} else { -var21 = var_tkwendnode12->type->type_table[cltype22] == idtype23; +var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var12 = parser_work__Parser__go_to(var_p, var11); } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4207); -exit(1); +{ +parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ } -var24 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var25 = NULL; -var26 = NULL; -var27 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var24, var_pdocnode2, var25, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var26, var27, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var24); -var_pclassdefnode1 = var24; -var_node_list = var_pclassdefnode1; -var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction73#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction73__action(val* self, val* p0) { -parser__ReduceAction73__action(self, p0); +/* method parser#ReduceAction199#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction199__action(val* self, val* p0) { +parser__ReduceAction199__action(self, p0); /* Direct call parser#ReduceAction199#action on */ RET_LABEL:; } -/* method parser#ReduceAction74#action for (self: ReduceAction74, Parser) */ -void parser__ReduceAction74__action(val* self, val* p0) { +/* method parser#ReduceAction200#action for (self: ReduceAction200, Parser) */ +void parser__ReduceAction200__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var12 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : AStdClassdef */; -val* var29 /* : null */; -val* var30 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var31 /* : Int */; -long var32 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +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_nodearraylist8 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode7 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode10 = var10; -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_listnode11 = var11; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var12 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var12 = 0; -} else { -var12 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4242); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype14 = type_nullable_parser_nodes__TKwredef.color; -idtype15 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var13 = 1; -} else { -if(cltype14 >= var_tkwredefnode3->type->table_size) { -var13 = 0; -} else { -var13 = var_tkwredefnode3->type->type_table[cltype14] == idtype15; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4244); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype17 = type_nullable_parser_nodes__AVisibility.color; -idtype18 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_pvisibilitynode4->type->table_size) { -var16 = 0; -} else { -var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18; -} -} -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4246); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype20 = type_nullable_parser_nodes__AClasskind.color; -idtype21 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var19 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tkwinitnode3 = var_nodearraylist3; +/* isa nullable TKwinit */ +cltype = type_nullable_parser_nodes__TKwinit.color; +idtype = type_nullable_parser_nodes__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var7 = 1; } else { -if(cltype20 >= var_pclasskindnode5->type->table_size) { -var19 = 0; +if(cltype >= var_tkwinitnode3->type->table_size) { +var7 = 0; } else { -var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21; +var7 = var_tkwinitnode3->type->type_table[cltype] == idtype; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4248); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5953); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype23 = type_nullable_parser_nodes__TClassid.color; -idtype24 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var22 = 1; +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype9 = type_nullable_parser_nodes__AExprs.color; +idtype10 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var8 = 1; } else { -if(cltype23 >= var_tclassidnode6->type->table_size) { -var22 = 0; +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; } else { -var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24; +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4250); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5955); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist8; -/* isa nullable TKwend */ -cltype26 = type_nullable_parser_nodes__TKwend.color; -idtype27 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var25 = 1; -} else { -if(cltype26 >= var_tkwendnode12->type->table_size) { -var25 = 0; -} else { -var25 = var_tkwendnode12->type->type_table[cltype26] == idtype27; +var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); +{ +parser_prod__AInitExpr__init_ainitexpr(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var13 = parser_work__Parser__go_to(var_p, var12); } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4252); -exit(1); +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ } -var28 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var29 = NULL; -var30 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var28, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var29, var30, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var28); -var_pclassdefnode1 = var28; -var_node_list = var_pclassdefnode1; -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#ReduceAction74#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction74__action(val* self, val* p0) { -parser__ReduceAction74__action(self, p0); +/* method parser#ReduceAction200#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction200__action(val* self, val* p0) { +parser__ReduceAction200__action(self, p0); /* Direct call parser#ReduceAction200#action on */ RET_LABEL:; } -/* method parser#ReduceAction75#action for (self: ReduceAction75, Parser) */ -void parser__ReduceAction75__action(val* self, val* p0) { +/* method parser#ReduceAction202#action for (self: ReduceAction202, Parser) */ +void parser__ReduceAction202__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* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var12 /* : Bool */; +val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_ptypenode5 /* var ptypenode5: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var25 /* : AStdClassdef */; -val* var26 /* : null */; -val* var27 /* : null */; -val* var28 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var29 /* : Int */; -long var30 /* : Int */; +val* var16 /* : ADebugTypeExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */; +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_nodearraylist8 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode7 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode10 = var10; -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_listnode11 = var11; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var12 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var12 = 0; -} else { -var12 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4287); -exit(1); +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype14 = type_nullable_parser_nodes__AVisibility.color; -idtype15 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var13 = 1; +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var_tkwdebugnode2 = var_nodearraylist1; +/* isa nullable TKwdebug */ +cltype = type_nullable_parser_nodes__TKwdebug.color; +idtype = type_nullable_parser_nodes__TKwdebug.id; +if(var_tkwdebugnode2 == NULL) { +var6 = 1; } else { -if(cltype14 >= var_pvisibilitynode4->type->table_size) { -var13 = 0; +if(cltype >= var_tkwdebugnode2->type->table_size) { +var6 = 0; } else { -var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; +var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4289); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5976); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype17 = type_nullable_parser_nodes__AClasskind.color; -idtype18 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var16 = 1; +var_tkwtypenode3 = var_nodearraylist2; +/* isa nullable TKwtype */ +cltype8 = type_nullable_parser_nodes__TKwtype.color; +idtype9 = type_nullable_parser_nodes__TKwtype.id; +if(var_tkwtypenode3 == NULL) { +var7 = 1; } else { -if(cltype17 >= var_pclasskindnode5->type->table_size) { -var16 = 0; +if(cltype8 >= var_tkwtypenode3->type->table_size) { +var7 = 0; } else { -var16 = var_pclasskindnode5->type->type_table[cltype17] == idtype18; +var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4291); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5978); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype20 = type_nullable_parser_nodes__TClassid.color; -idtype21 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var19 = 1; +var_pexprnode4 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype11 = type_nullable_parser_nodes__AExpr.color; +idtype12 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { +var10 = 1; } else { -if(cltype20 >= var_tclassidnode6->type->table_size) { -var19 = 0; +if(cltype11 >= var_pexprnode4->type->table_size) { +var10 = 0; } else { -var19 = var_tclassidnode6->type->type_table[cltype20] == idtype21; +var10 = var_pexprnode4->type->type_table[cltype11] == idtype12; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4293); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5980); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist8; -/* isa nullable TKwend */ -cltype23 = type_nullable_parser_nodes__TKwend.color; -idtype24 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var22 = 1; +var_ptypenode5 = var_nodearraylist3; +/* isa nullable AType */ +cltype14 = type_nullable_parser_nodes__AType.color; +idtype15 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode5 == NULL) { +var13 = 1; } else { -if(cltype23 >= var_tkwendnode12->type->table_size) { -var22 = 0; +if(cltype14 >= var_ptypenode5->type->table_size) { +var13 = 0; } else { -var22 = var_tkwendnode12->type->type_table[cltype23] == idtype24; +var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 5982); +show_backtrace(1); +} +var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr); +{ +parser_prod__ADebugTypeExpr__init_adebugtypeexpr(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5); /* Direct call parser_prod#ADebugTypeExpr#init_adebugtypeexpr on */ } +var_pexprnode1 = var16; +var_node_list = var_pexprnode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4295); -exit(1); +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -var25 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var26 = NULL; -var27 = NULL; -var28 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var27, var28, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var25); -var_pclassdefnode1 = var25; -var_node_list = var_pclassdefnode1; -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#ReduceAction75#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction75__action(val* self, val* p0) { -parser__ReduceAction75__action(self, p0); +/* method parser#ReduceAction202#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction202__action(val* self, val* p0) { +parser__ReduceAction202__action(self, p0); /* Direct call parser#ReduceAction202#action on */ RET_LABEL:; } -/* method parser#ReduceAction76#action for (self: ReduceAction76, Parser) */ -void parser__ReduceAction76__action(val* self, val* p0) { +/* method parser#ReduceAction203#action for (self: ReduceAction203, Parser) */ +void parser__ReduceAction203__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* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : AStdClassdef */; -val* var27 /* : null */; -val* var28 /* : null */; -val* var29 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var30 /* : Int */; -long var31 /* : Int */; +val* var3 /* : ALabel */; +val* var4 /* : null */; +val* var_plabelnode1 /* var plabelnode1: nullable ALabel */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode10 = 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_listnode11 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4331); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist2; -/* 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 (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4333); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { -var17 = 0; -} else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; -} +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4335); -exit(1); -} -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var20 = 1; +var_nodearraylist1 = var1; +var_tkwlabelnode2 = var_nodearraylist1; +/* isa nullable TKwlabel */ +cltype = type_nullable_parser_nodes__TKwlabel.color; +idtype = type_nullable_parser_nodes__TKwlabel.id; +if(var_tkwlabelnode2 == NULL) { +var2 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { -var20 = 0; +if(cltype >= var_tkwlabelnode2->type->table_size) { +var2 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; +var2 = var_tkwlabelnode2->type->type_table[cltype] == idtype; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4337); -exit(1); +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6000); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype24 = type_nullable_parser_nodes__TKwend.color; -idtype25 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var23 = 1; -} else { -if(cltype24 >= var_tkwendnode12->type->table_size) { -var23 = 0; -} else { -var23 = var_tkwendnode12->type->type_table[cltype24] == idtype25; +var3 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel); +var4 = NULL; +{ +parser_prod__ALabel__init_alabel(var3, var_tkwlabelnode2, var4); /* Direct call parser_prod#ALabel#init_alabel on */ } +var_plabelnode1 = var3; +var_node_list = var_plabelnode1; +var5 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var6 = parser_work__Parser__go_to(var_p, var5); } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4339); -exit(1); +{ +parser_work__Parser__push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -var26 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var27 = NULL; -var28 = NULL; -var29 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var26, var_pdocnode2, var27, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var28, var29, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var26); -var_pclassdefnode1 = var26; -var_node_list = var_pclassdefnode1; -var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction76#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction76__action(val* self, val* p0) { -parser__ReduceAction76__action(self, p0); +/* method parser#ReduceAction203#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction203__action(val* self, val* p0) { +parser__ReduceAction203__action(self, p0); /* Direct call parser#ReduceAction203#action on */ RET_LABEL:; } -/* method parser#ReduceAction78#action for (self: ReduceAction78, Parser) */ -void parser__ReduceAction78__action(val* self, val* p0) { +/* method parser#ReduceAction204#action for (self: ReduceAction204, Parser) */ +void parser__ReduceAction204__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* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var29 /* : AStdClassdef */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var32 /* : Int */; -long var33 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : ALabel */; +val* var_plabelnode1 /* var plabelnode1: nullable ALabel */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode10 = 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_listnode11 = var12; -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) { -var13 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var2; +var_tkwlabelnode2 = var_nodearraylist1; +/* isa nullable TKwlabel */ +cltype = type_nullable_parser_nodes__TKwlabel.color; +idtype = type_nullable_parser_nodes__TKwlabel.id; +if(var_tkwlabelnode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; +if(cltype >= var_tkwlabelnode2->type->table_size) { +var3 = 0; } else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6017); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype5 = type_nullable_parser_nodes__TId.color; +idtype6 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var4 = 1; +} else { +if(cltype5 >= var_tidnode3->type->table_size) { +var4 = 0; +} else { +var4 = var_tidnode3->type->type_table[cltype5] == idtype6; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6019); +show_backtrace(1); +} +var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel); +{ +parser_prod__ALabel__init_alabel(var7, var_tkwlabelnode2, var_tidnode3); /* Direct call parser_prod#ALabel#init_alabel on */ } +var_plabelnode1 = var7; +var_node_list = var_plabelnode1; +var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var9 = parser_work__Parser__go_to(var_p, var8); } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4375); -exit(1); +{ +parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype15 = type_nullable_parser_nodes__TKwredef.color; -idtype16 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_tkwredefnode3->type->table_size) { -var14 = 0; -} else { -var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16; +RET_LABEL:; +} +/* method parser#ReduceAction204#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction204__action(val* self, val* p0) { +parser__ReduceAction204__action(self, p0); /* Direct call parser#ReduceAction204#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction205#action for (self: ReduceAction205, Parser) */ +void parser__ReduceAction205__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AVardeclExpr */; +val* var12 /* : null */; +val* var13 /* : null */; +val* var14 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var15 /* : Int */; +long var16 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4377); -exit(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype18 = type_nullable_parser_nodes__AVisibility.color; -idtype19 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var17 = 1; +var_nodearraylist1 = var3; +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable_parser_nodes__TKwvar.color; +idtype = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var4 = 1; } else { -if(cltype18 >= var_pvisibilitynode4->type->table_size) { -var17 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var4 = 0; } else { -var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19; +var4 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4379); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6037); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype21 = type_nullable_parser_nodes__AClasskind.color; -idtype22 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var20 = 1; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype6 = type_nullable_parser_nodes__TId.color; +idtype7 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var5 = 1; } else { -if(cltype21 >= var_pclasskindnode5->type->table_size) { -var20 = 0; +if(cltype6 >= var_tidnode3->type->table_size) { +var5 = 0; } else { -var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22; +var5 = var_tidnode3->type->type_table[cltype6] == idtype7; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4381); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6039); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype24 = type_nullable_parser_nodes__TClassid.color; -idtype25 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var23 = 1; +var_ptypenode4 = var_nodearraylist3; +/* isa nullable AType */ +cltype9 = type_nullable_parser_nodes__AType.color; +idtype10 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode4 == NULL) { +var8 = 1; } else { -if(cltype24 >= var_tclassidnode6->type->table_size) { -var23 = 0; +if(cltype9 >= var_ptypenode4->type->table_size) { +var8 = 0; } else { -var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25; +var8 = var_ptypenode4->type->type_table[cltype9] == idtype10; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4383); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6041); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype27 = type_nullable_parser_nodes__TKwend.color; -idtype28 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var26 = 1; -} else { -if(cltype27 >= var_tkwendnode12->type->table_size) { -var26 = 0; -} else { -var26 = var_tkwendnode12->type->type_table[cltype27] == idtype28; +var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +var12 = NULL; +var13 = NULL; +var14 = NULL; +{ +parser_prod__AVardeclExpr__init_avardeclexpr(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = parser_work__Parser__go_to(var_p, var15); } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4385); -exit(1); +{ +parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } -var29 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var30 = NULL; -var31 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var30, var31, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var29); -var_pclassdefnode1 = var29; -var_node_list = var_pclassdefnode1; -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#ReduceAction78#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction78__action(val* self, val* p0) { -parser__ReduceAction78__action(self, p0); +/* method parser#ReduceAction205#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction205__action(val* self, val* p0) { +parser__ReduceAction205__action(self, p0); /* Direct call parser#ReduceAction205#action on */ RET_LABEL:; } -/* method parser#ReduceAction79#action for (self: ReduceAction79, Parser) */ -void parser__ReduceAction79__action(val* self, val* p0) { +/* method parser#ReduceAction206#action for (self: ReduceAction206, Parser) */ +void parser__ReduceAction206__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : AStdClassdef */; -val* var31 /* : null */; -val* var32 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var33 /* : Int */; -long var34 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : AVardeclExpr */; +val* var16 /* : null */; +val* var17 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode10 = 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_listnode11 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = 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 (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4422); -exit(1); +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable_parser_nodes__TKwvar.color; +idtype = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var5 = 1; } else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var5 = 0; } else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +var5 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4424); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6064); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype7 = type_nullable_parser_nodes__TId.color; +idtype8 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var6 = 1; } else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; +if(cltype7 >= var_tidnode3->type->table_size) { +var6 = 0; } else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var6 = var_tidnode3->type->type_table[cltype7] == idtype8; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4426); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6066); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; +var_ptypenode4 = var_nodearraylist4; +/* isa nullable AType */ +cltype10 = type_nullable_parser_nodes__AType.color; +idtype11 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode4 == NULL) { +var9 = 1; } else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; +if(cltype10 >= var_ptypenode4->type->table_size) { +var9 = 0; } else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +var9 = var_ptypenode4->type->type_table[cltype10] == idtype11; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4428); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6068); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_pannotationsnode7 = var_nodearraylist3; +/* isa nullable AAnnotations */ +cltype13 = type_nullable_parser_nodes__AAnnotations.color; +idtype14 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode7 == NULL) { +var12 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype13 >= var_pannotationsnode7->type->table_size) { +var12 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4430); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6070); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype28 = type_nullable_parser_nodes__TKwend.color; -idtype29 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var27 = 1; -} else { -if(cltype28 >= var_tkwendnode12->type->table_size) { -var27 = 0; -} else { -var27 = var_tkwendnode12->type->type_table[cltype28] == idtype29; +var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +var16 = NULL; +var17 = NULL; +{ +parser_prod__AVardeclExpr__init_avardeclexpr(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4432); -exit(1); +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } -var30 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var31 = NULL; -var32 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var30, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var31, var32, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var30); -var_pclassdefnode1 = var30; -var_node_list = var_pclassdefnode1; -var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction79#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction79__action(val* self, val* p0) { -parser__ReduceAction79__action(self, p0); +/* method parser#ReduceAction206#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction206__action(val* self, val* p0) { +parser__ReduceAction206__action(self, p0); /* Direct call parser#ReduceAction206#action on */ RET_LABEL:; } -/* method parser#ReduceAction81#action for (self: ReduceAction81, Parser) */ -void parser__ReduceAction81__action(val* self, val* p0) { +/* method parser#ReduceAction207#action for (self: ReduceAction207, Parser) */ +void parser__ReduceAction207__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* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var12 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var25 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var29 /* : AStdClassdef */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var32 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var33 /* : Int */; -long var34 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : AVardeclExpr */; +val* var21 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +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_nodearraylist8 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode11 = var10; -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_listnode12 = var11; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var12 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var12 = 0; -} else { -var12 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +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); } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4467); -exit(1); +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype14 = type_nullable_parser_nodes__AVisibility.color; -idtype15 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var13 = 1; +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var6; +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable_parser_nodes__TKwvar.color; +idtype = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var7 = 1; } else { -if(cltype14 >= var_pvisibilitynode4->type->table_size) { -var13 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var7 = 0; } else { -var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; +var7 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4469); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6095); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype17 = type_nullable_parser_nodes__AClasskind.color; -idtype18 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var16 = 1; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype9 = type_nullable_parser_nodes__TId.color; +idtype10 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype17 >= var_pclasskindnode5->type->table_size) { -var16 = 0; +if(cltype9 >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var16 = var_pclasskindnode5->type->type_table[cltype17] == idtype18; +var8 = var_tidnode3->type->type_table[cltype9] == idtype10; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4471); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6097); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype20 = type_nullable_parser_nodes__TClassid.color; -idtype21 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var19 = 1; +var_ptypenode4 = var_nodearraylist3; +/* isa nullable AType */ +cltype12 = type_nullable_parser_nodes__AType.color; +idtype13 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode4 == NULL) { +var11 = 1; } else { -if(cltype20 >= var_tclassidnode6->type->table_size) { -var19 = 0; +if(cltype12 >= var_ptypenode4->type->table_size) { +var11 = 0; } else { -var19 = var_tclassidnode6->type->type_table[cltype20] == idtype21; +var11 = var_ptypenode4->type->type_table[cltype12] == idtype13; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4473); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6099); +show_backtrace(1); } -var_listnode7 = var_nodearraylist6; -/* isa Array[Object] */ -cltype23 = type_array__Arraykernel__Object.color; -idtype24 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var22 = 0; +var_tassignnode5 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype15 = type_nullable_parser_nodes__TAssign.color; +idtype16 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var14 = 1; } else { -if(cltype23 >= var_listnode7->type->table_size) { -var22 = 0; +if(cltype15 >= var_tassignnode5->type->table_size) { +var14 = 0; } else { -var22 = var_listnode7->type->type_table[cltype23] == idtype24; +var14 = var_tassignnode5->type->type_table[cltype15] == idtype16; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4475); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6101); +show_backtrace(1); } -var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var25; -var_tkwendnode13 = var_nodearraylist8; -/* isa nullable TKwend */ -cltype27 = type_nullable_parser_nodes__TKwend.color; -idtype28 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var26 = 1; +var_pexprnode6 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype18 = type_nullable_parser_nodes__AExpr.color; +idtype19 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var17 = 1; } else { -if(cltype27 >= var_tkwendnode13->type->table_size) { -var26 = 0; +if(cltype18 >= var_pexprnode6->type->table_size) { +var17 = 0; } else { -var26 = var_tkwendnode13->type->type_table[cltype27] == idtype28; +var17 = var_pexprnode6->type->type_table[cltype18] == idtype19; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4478); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6103); +show_backtrace(1); +} +var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +var21 = NULL; +{ +parser_prod__AVardeclExpr__init_avardeclexpr(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ +} +var_pexprnode1 = var20; +var_node_list = var_pexprnode1; +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 */ } -var29 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var30 = NULL; -var31 = NULL; -var32 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var31, var32, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var29); -var_pclassdefnode1 = var29; -var_node_list = var_pclassdefnode1; -var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction81#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction81__action(val* self, val* p0) { -parser__ReduceAction81__action(self, p0); +/* method parser#ReduceAction207#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction207__action(val* self, val* p0) { +parser__ReduceAction207__action(self, p0); /* Direct call parser#ReduceAction207#action on */ RET_LABEL:; } -/* method parser#ReduceAction82#action for (self: ReduceAction82, Parser) */ -void parser__ReduceAction82__action(val* self, val* p0) { +/* method parser#ReduceAction208#action for (self: ReduceAction208, Parser) */ +void parser__ReduceAction208__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var29 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -val* var33 /* : AStdClassdef */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var36 /* : Int */; -long var37 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var24 /* : AVardeclExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var25 /* : Int */; +long var26 /* : 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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode8 = var10; -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_listnode11 = 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_listnode12 = var12; -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) { -var13 = 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_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable_parser_nodes__TKwvar.color; +idtype = type_nullable_parser_nodes__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var8 = 0; } else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +var8 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4514); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6129); +show_backtrace(1); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype15 = type_nullable_parser_nodes__TKwredef.color; -idtype16 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var14 = 1; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype15 >= var_tkwredefnode3->type->table_size) { -var14 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4516); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6131); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype18 = type_nullable_parser_nodes__AVisibility.color; -idtype19 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var17 = 1; +var_ptypenode4 = var_nodearraylist4; +/* isa nullable AType */ +cltype13 = type_nullable_parser_nodes__AType.color; +idtype14 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode4 == NULL) { +var12 = 1; } else { -if(cltype18 >= var_pvisibilitynode4->type->table_size) { -var17 = 0; +if(cltype13 >= var_ptypenode4->type->table_size) { +var12 = 0; } else { -var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19; +var12 = var_ptypenode4->type->type_table[cltype13] == idtype14; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4518); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6133); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype21 = type_nullable_parser_nodes__AClasskind.color; -idtype22 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var20 = 1; +var_tassignnode5 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype16 = type_nullable_parser_nodes__TAssign.color; +idtype17 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var15 = 1; } else { -if(cltype21 >= var_pclasskindnode5->type->table_size) { -var20 = 0; +if(cltype16 >= var_tassignnode5->type->table_size) { +var15 = 0; } else { -var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22; +var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4520); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6135); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype24 = type_nullable_parser_nodes__TClassid.color; -idtype25 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var23 = 1; +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var18 = 1; } else { -if(cltype24 >= var_tclassidnode6->type->table_size) { -var23 = 0; +if(cltype19 >= var_pexprnode6->type->table_size) { +var18 = 0; } else { -var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25; +var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4522); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6137); +show_backtrace(1); } -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype27 = type_array__Arraykernel__Object.color; -idtype28 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var26 = 0; +var_pannotationsnode7 = var_nodearraylist3; +/* isa nullable AAnnotations */ +cltype22 = type_nullable_parser_nodes__AAnnotations.color; +idtype23 = type_nullable_parser_nodes__AAnnotations.id; +if(var_pannotationsnode7 == NULL) { +var21 = 1; } else { -if(cltype27 >= var_listnode7->type->table_size) { -var26 = 0; +if(cltype22 >= var_pannotationsnode7->type->table_size) { +var21 = 0; } else { -var26 = var_listnode7->type->type_table[cltype27] == idtype28; +var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4524); -exit(1); +if (unlikely(!var21)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6139); +show_backtrace(1); } -var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var29; -var_tkwendnode13 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype31 = type_nullable_parser_nodes__TKwend.color; -idtype32 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var30 = 1; -} else { -if(cltype31 >= var_tkwendnode13->type->table_size) { -var30 = 0; -} else { -var30 = var_tkwendnode13->type->type_table[cltype31] == idtype32; +var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +{ +parser_prod__AVardeclExpr__init_avardeclexpr(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } +var_pexprnode1 = var24; +var_node_list = var_pexprnode1; +var25 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var26 = parser_work__Parser__go_to(var_p, var25); } -if (!var30) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4527); -exit(1); +{ +parser_work__Parser__push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on */ } -var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var34 = NULL; -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var34, var35, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var33); -var_pclassdefnode1 = var33; -var_node_list = var_pclassdefnode1; -var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var37 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var36) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var37, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction82#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction82__action(val* self, val* p0) { -parser__ReduceAction82__action(self, p0); +/* method parser#ReduceAction208#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction208__action(val* self, val* p0) { +parser__ReduceAction208__action(self, p0); /* Direct call parser#ReduceAction208#action on */ RET_LABEL:; } -/* method parser#ReduceAction83#action for (self: ReduceAction83, Parser) */ -void parser__ReduceAction83__action(val* self, val* p0) { +/* method parser#ReduceAction209#action for (self: ReduceAction209, Parser) */ +void parser__ReduceAction209__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : AStdClassdef */; -val* var31 /* : null */; -val* var32 /* : null */; -val* var33 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var34 /* : Int */; -long var35 /* : Int */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var18 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode8 = var10; -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_listnode11 = 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_listnode12 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4563); -exit(1); +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* 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; +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4565); -exit(1); +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var17 = 1; +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { -var17 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4567); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6165); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var20 = 1; +var_tattridnode3 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype10 = type_nullable_parser_nodes__TAttrid.color; +idtype11 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var9 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { -var20 = 0; +if(cltype10 >= var_tattridnode3->type->table_size) { +var9 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; +var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4569); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6167); +show_backtrace(1); } -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype24 = type_array__Arraykernel__Object.color; -idtype25 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var23 = 0; +var_tassignnode4 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype13 = type_nullable_parser_nodes__TAssign.color; +idtype14 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { +var12 = 1; } else { -if(cltype24 >= var_listnode7->type->table_size) { -var23 = 0; +if(cltype13 >= var_tassignnode4->type->table_size) { +var12 = 0; } else { -var23 = var_listnode7->type->type_table[cltype24] == idtype25; +var12 = var_tassignnode4->type->type_table[cltype13] == idtype14; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4571); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6169); +show_backtrace(1); } -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var26; -var_tkwendnode13 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype28 = type_nullable_parser_nodes__TKwend.color; -idtype29 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var27 = 1; +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype16 = type_nullable_parser_nodes__AExpr.color; +idtype17 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var15 = 1; } else { -if(cltype28 >= var_tkwendnode13->type->table_size) { -var27 = 0; +if(cltype16 >= var_pexprnode5->type->table_size) { +var15 = 0; } else { -var27 = var_tkwendnode13->type->type_table[cltype28] == idtype29; +var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; +} } +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6171); +show_backtrace(1); } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4574); -exit(1); +var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +{ +parser_prod__AAttrAssignExpr__init_aattrassignexpr(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ +} +var_pexprnode1 = var18; +var_node_list = var_pexprnode1; +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 */ } -var30 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var31 = NULL; -var32 = NULL; -var33 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var30, var_pdocnode2, var31, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var32, var33, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var30); -var_pclassdefnode1 = var30; -var_node_list = var_pclassdefnode1; -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#ReduceAction83#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction83__action(val* self, val* p0) { -parser__ReduceAction83__action(self, p0); +/* method parser#ReduceAction209#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction209__action(val* self, val* p0) { +parser__ReduceAction209__action(self, p0); /* Direct call parser#ReduceAction209#action on */ RET_LABEL:; } -/* method parser#ReduceAction84#action for (self: ReduceAction84, Parser) */ -void parser__ReduceAction84__action(val* self, val* p0) { +/* method parser#ReduceAction210#action for (self: ReduceAction210, Parser) */ +void parser__ReduceAction210__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : AStdClassdef */; -val* var32 /* : null */; -val* var33 /* : null */; -val* var34 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var35 /* : Int */; -long var36 /* : Int */; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode11 = 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_listnode12 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4611); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist2; -/* 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 (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4613); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype19 = type_nullable_parser_nodes__AClasskind.color; -idtype20 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var18 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tattridnode3 = var_nodearraylist2; +/* isa nullable TAttrid */ +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var7 = 1; } else { -if(cltype19 >= var_pclasskindnode5->type->table_size) { -var18 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var7 = 0; } else { -var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20; +var7 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4615); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6193); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype22 = type_nullable_parser_nodes__TClassid.color; -idtype23 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var21 = 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(cltype22 >= var_tclassidnode6->type->table_size) { -var21 = 0; +if(cltype9 >= var_tassignnode4->type->table_size) { +var8 = 0; } else { -var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23; +var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4617); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6195); +show_backtrace(1); } -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype25 = type_array__Arraykernel__Object.color; -idtype26 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var24 = 0; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype12 = type_nullable_parser_nodes__AExpr.color; +idtype13 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var11 = 1; } else { -if(cltype25 >= var_listnode7->type->table_size) { -var24 = 0; +if(cltype12 >= var_pexprnode5->type->table_size) { +var11 = 0; } else { -var24 = var_listnode7->type->type_table[cltype25] == idtype26; +var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4619); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6197); +show_backtrace(1); } -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var27; -var_tkwendnode13 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype29 = type_nullable_parser_nodes__TKwend.color; -idtype30 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var28 = 1; -} else { -if(cltype29 >= var_tkwendnode13->type->table_size) { -var28 = 0; -} else { -var28 = var_tkwendnode13->type->type_table[cltype29] == idtype30; +var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +{ +parser_prod__AAttrAssignExpr__init_aattrassignexpr(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ } +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = parser_work__Parser__go_to(var_p, var15); } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4622); -exit(1); +{ +parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } -var31 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var32 = NULL; -var33 = NULL; -var34 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var31, var_pdocnode2, var32, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var33, var34, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var31); -var_pclassdefnode1 = var31; -var_node_list = var_pclassdefnode1; -var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction84#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction84__action(val* self, val* p0) { -parser__ReduceAction84__action(self, p0); +/* method parser#ReduceAction210#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction210__action(val* self, val* p0) { +parser__ReduceAction210__action(self, p0); /* Direct call parser#ReduceAction210#action on */ RET_LABEL:; } -/* method parser#ReduceAction86#action for (self: ReduceAction86, Parser) */ -void parser__ReduceAction86__action(val* self, val* p0) { +/* method parser#ReduceAction211#action for (self: ReduceAction211, Parser) */ +void parser__ReduceAction211__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var7 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var34 /* : AStdClassdef */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var37 /* : Int */; -long var38 /* : Int */; +val* var21 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode11 = 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_listnode12 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4659); -exit(1); +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; -} else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4661); -exit(1); +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4663); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6221); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4665); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6223); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype13 = type_nullable_parser_nodes__AExprs.color; +idtype14 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var12 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype13 >= var_pexprsnode4->type->table_size) { +var12 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4667); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6225); +show_backtrace(1); } -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype28 = type_array__Arraykernel__Object.color; -idtype29 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var27 = 0; +var_tassignnode5 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype16 = type_nullable_parser_nodes__TAssign.color; +idtype17 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var15 = 1; } else { -if(cltype28 >= var_listnode7->type->table_size) { -var27 = 0; +if(cltype16 >= var_tassignnode5->type->table_size) { +var15 = 0; } else { -var27 = var_listnode7->type->type_table[cltype28] == idtype29; +var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4669); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6227); +show_backtrace(1); } -var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var30; -var_tkwendnode13 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype32 = type_nullable_parser_nodes__TKwend.color; -idtype33 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var31 = 1; +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var18 = 1; } else { -if(cltype32 >= var_tkwendnode13->type->table_size) { -var31 = 0; +if(cltype19 >= var_pexprnode6->type->table_size) { +var18 = 0; } else { -var31 = var_tkwendnode13->type->type_table[cltype32] == idtype33; +var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6229); +show_backtrace(1); } +var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4672); -exit(1); +var_pexprnode1 = var21; +var_node_list = var_pexprnode1; +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 */ } -var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var35 = NULL; -var36 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var35, var36, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var34); -var_pclassdefnode1 = var34; -var_node_list = var_pclassdefnode1; -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#ReduceAction86#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction86__action(val* self, val* p0) { -parser__ReduceAction86__action(self, p0); +/* method parser#ReduceAction211#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction211__action(val* self, val* p0) { +parser__ReduceAction211__action(self, p0); /* Direct call parser#ReduceAction211#action on */ RET_LABEL:; } -/* method parser#ReduceAction87#action for (self: ReduceAction87, Parser) */ -void parser__ReduceAction87__action(val* self, val* p0) { +/* method parser#ReduceAction212#action for (self: ReduceAction212, Parser) */ +void parser__ReduceAction212__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var12 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var35 /* : AStdClassdef */; -val* var36 /* : null */; -val* var37 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var38 /* : Int */; -long var39 /* : Int */; +val* var19 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode11 = 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_listnode12 = var14; -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) { -var15 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; -} else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist6 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4710); -exit(1); +var_nodearraylist5 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype17 = type_nullable_parser_nodes__TKwredef.color; -idtype18 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_tkwredefnode3->type->table_size) { -var16 = 0; -} else { -var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18; +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4712); -exit(1); +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype20 = type_nullable_parser_nodes__AVisibility.color; -idtype21 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var19 = 1; +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var7 = 1; } else { -if(cltype20 >= var_pvisibilitynode4->type->table_size) { -var19 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var7 = 0; } else { -var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21; +var7 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4714); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6253); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype23 = type_nullable_parser_nodes__AClasskind.color; -idtype24 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var22 = 1; +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype9 = type_nullable_parser_nodes__TId.color; +idtype10 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype23 >= var_pclasskindnode5->type->table_size) { -var22 = 0; +if(cltype9 >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24; +var8 = var_tidnode3->type->type_table[cltype9] == idtype10; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4716); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6255); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype26 = type_nullable_parser_nodes__TClassid.color; -idtype27 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var25 = 1; +var11 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on */; +} +var_listnode5 = var11; +var12 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var12; +var_tassignnode6 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype14 = type_nullable_parser_nodes__TAssign.color; +idtype15 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var13 = 1; } else { -if(cltype26 >= var_tclassidnode6->type->table_size) { -var25 = 0; +if(cltype14 >= var_tassignnode6->type->table_size) { +var13 = 0; } else { -var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27; +var13 = var_tassignnode6->type->type_table[cltype14] == idtype15; } } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4718); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6261); +show_backtrace(1); } -var_listnode7 = var_nodearraylist9; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var28 = 0; +var_pexprnode7 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var16 = 1; } else { -if(cltype29 >= var_listnode7->type->table_size) { -var28 = 0; +if(cltype17 >= var_pexprnode7->type->table_size) { +var16 = 0; } else { -var28 = var_listnode7->type->type_table[cltype29] == idtype30; +var16 = var_pexprnode7->type->type_table[cltype17] == idtype18; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4720); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6263); +show_backtrace(1); } -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var31; -var_tkwendnode13 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype33 = type_nullable_parser_nodes__TKwend.color; -idtype34 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var32 = 1; -} else { -if(cltype33 >= var_tkwendnode13->type->table_size) { -var32 = 0; -} else { -var32 = var_tkwendnode13->type->type_table[cltype33] == idtype34; +var19 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var19; +var_node_list = var_pexprnode1; +var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var21 = parser_work__Parser__go_to(var_p, var20); } -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4723); -exit(1); +{ +parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } -var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var36 = NULL; -var37 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var36, var37, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var35); -var_pclassdefnode1 = var35; -var_node_list = var_pclassdefnode1; -var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var39 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var38) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var39, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction87#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction87__action(val* self, val* p0) { -parser__ReduceAction87__action(self, p0); +/* method parser#ReduceAction212#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction212__action(val* self, val* p0) { +parser__ReduceAction212__action(self, p0); /* Direct call parser#ReduceAction212#action on */ RET_LABEL:; } -/* method parser#ReduceAction89#action for (self: ReduceAction89, Parser) */ -void parser__ReduceAction89__action(val* self, val* p0) { +/* method parser#ReduceAction213#action for (self: ReduceAction213, Parser) */ +void parser__ReduceAction213__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3329,479 +5459,353 @@ val* var7 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var12 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var19 /* : Bool */; int cltype20; int idtype21; -val* var22 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var27 /* : AAnnotations */; -val* var28 /* : null */; -val* var29 /* : null */; -val* var30 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var34 /* : AStdClassdef */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var37 /* : Int */; -long var38 /* : Int */; +val* var22 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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 */; +{ +var1 = parser_work__Parser__pop(var_p); +} var_nodearraylist8 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist7 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist6 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist5 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var5 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var6 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var7 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var8 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = 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_listnode7 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode15 = var10; -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_listnode16 = var11; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var12 = 1; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var9 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var12 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6289); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype11 = type_nullable_parser_nodes__TId.color; +idtype12 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_tidnode3->type->table_size) { +var10 = 0; } else { -var12 = var_pdocnode2->type->type_table[cltype] == idtype; +var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4758); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6291); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype14 = type_nullable_parser_nodes__AVisibility.color; -idtype15 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype14 = type_nullable_parser_nodes__AExprs.color; +idtype15 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { var13 = 1; } else { -if(cltype14 >= var_pvisibilitynode4->type->table_size) { +if(cltype14 >= var_pexprsnode4->type->table_size) { var13 = 0; } else { -var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15; +var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4760); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6293); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype17 = type_nullable_parser_nodes__AClasskind.color; -idtype18 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { +var_tassignnode5 = var_nodearraylist7; +/* isa nullable TAssign */ +cltype17 = type_nullable_parser_nodes__TAssign.color; +idtype18 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { var16 = 1; } else { -if(cltype17 >= var_pclasskindnode5->type->table_size) { +if(cltype17 >= var_tassignnode5->type->table_size) { var16 = 0; } else { -var16 = var_pclasskindnode5->type->type_table[cltype17] == idtype18; +var16 = var_tassignnode5->type->type_table[cltype17] == idtype18; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4762); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6295); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype20 = type_nullable_parser_nodes__TClassid.color; -idtype21 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { +var_pexprnode6 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype20 = type_nullable_parser_nodes__AExpr.color; +idtype21 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { var19 = 1; } else { -if(cltype20 >= var_tclassidnode6->type->table_size) { +if(cltype20 >= var_pexprnode6->type->table_size) { var19 = 0; } else { -var19 = var_tclassidnode6->type->type_table[cltype20] == idtype21; -} -} -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4764); -exit(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_listnode12 = var22; -var_listnode11 = var_nodearraylist6; -/* isa Array[Object] */ -cltype24 = type_array__Arraykernel__Object.color; -idtype25 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var23 = 0; -} else { -if(cltype24 >= var_listnode11->type->table_size) { -var23 = 0; -} else { -var23 = var_listnode11->type->type_table[cltype24] == idtype25; -} -} -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4767); -exit(1); -} -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var26; -var27 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var28 = NULL; -var29 = NULL; -var30 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var27, var28, var29, var_listnode12, var30) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var27); -var_pannotationsnode8 = var27; -var_tkwendnode17 = var_nodearraylist8; -/* isa nullable TKwend */ -cltype32 = type_nullable_parser_nodes__TKwend.color; -idtype33 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var31 = 1; -} else { -if(cltype32 >= var_tkwendnode17->type->table_size) { -var31 = 0; -} else { -var31 = var_tkwendnode17->type->type_table[cltype32] == idtype33; -} -} -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4776); -exit(1); -} -var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var35 = NULL; -var36 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var35, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var36, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var34); -var_pclassdefnode1 = var34; -var_node_list = var_pclassdefnode1; -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#ReduceAction89#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction89__action(val* self, val* p0) { -parser__ReduceAction89__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction90#action for (self: ReduceAction90, Parser) */ -void parser__ReduceAction90__action(val* self, val* p0) { +var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6297); +show_backtrace(1); +} +var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +} +var_pexprnode1 = var22; +var_node_list = var_pexprnode1; +var23 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var24 = parser_work__Parser__go_to(var_p, var23); +} +{ +parser_work__Parser__push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction213#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction213__action(val* self, val* p0) { +parser__ReduceAction213__action(self, p0); /* Direct call parser#ReduceAction213#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction214#action for (self: ReduceAction214, Parser) */ +void parser__ReduceAction214__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var13 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var17 /* : Bool */; int cltype18; int idtype19; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : Array[Object] */; -val* var31 /* : AAnnotations */; -val* var32 /* : null */; -val* var33 /* : null */; -val* var34 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var35 /* : Bool */; -int cltype36; -int idtype37; -val* var38 /* : AStdClassdef */; -val* var39 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var40 /* : Int */; -long var41 /* : Int */; +val* var20 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode15 = 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_listnode16 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4812); -exit(1); +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype15 = type_nullable_parser_nodes__TKwredef.color; -idtype16 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_tkwredefnode3->type->table_size) { -var14 = 0; -} else { -var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16; +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); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4814); -exit(1); +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype18 = type_nullable_parser_nodes__AVisibility.color; -idtype19 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var17 = 1; +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype18 >= var_pvisibilitynode4->type->table_size) { -var17 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4816); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6322); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype21 = type_nullable_parser_nodes__AClasskind.color; -idtype22 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var20 = 1; +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype21 >= var_pclasskindnode5->type->table_size) { -var20 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4818); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6324); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype24 = type_nullable_parser_nodes__TClassid.color; -idtype25 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var23 = 1; +var12 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var12->class->vft[COLOR_kernel__Object__init]))(var12) /* init on */; +} +var_listnode5 = var12; +var13 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var13; +var_tassignnode6 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype15 = type_nullable_parser_nodes__TAssign.color; +idtype16 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var14 = 1; } else { -if(cltype24 >= var_tclassidnode6->type->table_size) { -var23 = 0; +if(cltype15 >= var_tassignnode6->type->table_size) { +var14 = 0; } else { -var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25; +var14 = var_tassignnode6->type->type_table[cltype15] == idtype16; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4820); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6330); +show_backtrace(1); } -var26 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var26->class->vft[COLOR_array__Array__init]))(var26) /* init on */; -CHECK_NEW_array__Array(var26); -var_listnode12 = var26; -var_listnode11 = var_nodearraylist7; -/* isa Array[Object] */ -cltype28 = type_array__Arraykernel__Object.color; -idtype29 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var27 = 0; +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable_parser_nodes__AExpr.color; +idtype19 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var17 = 1; } else { -if(cltype28 >= var_listnode11->type->table_size) { -var27 = 0; +if(cltype18 >= var_pexprnode7->type->table_size) { +var17 = 0; } else { -var27 = var_listnode11->type->type_table[cltype28] == idtype29; +var17 = var_pexprnode7->type->type_table[cltype18] == idtype19; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4823); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6332); +show_backtrace(1); } -var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var30; -var31 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var32 = NULL; -var33 = NULL; -var34 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var31, var32, var33, var_listnode12, var34) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var31); -var_pannotationsnode8 = var31; -var_tkwendnode17 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype36 = type_nullable_parser_nodes__TKwend.color; -idtype37 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var35 = 1; -} else { -if(cltype36 >= var_tkwendnode17->type->table_size) { -var35 = 0; -} else { -var35 = var_tkwendnode17->type->type_table[cltype36] == idtype37; +var20 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var20; +var_node_list = var_pexprnode1; +var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var22 = parser_work__Parser__go_to(var_p, var21); } -if (!var35) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4832); -exit(1); +{ +parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } -var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var39 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var39, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var38); -var_pclassdefnode1 = var38; -var_node_list = var_pclassdefnode1; -var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var41 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var40) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var41, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction90#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction90__action(val* self, val* p0) { -parser__ReduceAction90__action(self, p0); +/* method parser#ReduceAction214#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction214__action(val* self, val* p0) { +parser__ReduceAction214__action(self, p0); /* Direct call parser#ReduceAction214#action on */ RET_LABEL:; } -/* method parser#ReduceAction91#action for (self: ReduceAction91, Parser) */ -void parser__ReduceAction91__action(val* self, val* p0) { +/* method parser#ReduceAction215#action for (self: ReduceAction215, Parser) */ +void parser__ReduceAction215__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3823,4041 +5827,2432 @@ val* var8 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; short int var17 /* : Bool */; int cltype18; int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var20 /* : Bool */; int cltype21; int idtype22; -val* var23 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var28 /* : AAnnotations */; -val* var29 /* : null */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var35 /* : AStdClassdef */; -val* var36 /* : null */; -val* var37 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var38 /* : Int */; -long var39 /* : Int */; +val* var23 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var24 /* : Int */; +long var25 /* : 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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var5 = parser_work__Parser__pop(var_p); +} var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var6 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var7 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var8 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var9 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode15 = 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_listnode16 = var12; -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) { -var13 = 1; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var10 = 0; +} else { +var10 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6359); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype12 = type_nullable_parser_nodes__TId.color; +idtype13 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_tidnode3->type->table_size) { +var11 = 0; } else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +var11 = var_tidnode3->type->type_table[cltype12] == idtype13; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4868); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6361); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype15 = type_nullable_parser_nodes__AVisibility.color; -idtype16 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype15 = type_nullable_parser_nodes__AExprs.color; +idtype16 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { var14 = 1; } else { -if(cltype15 >= var_pvisibilitynode4->type->table_size) { +if(cltype15 >= var_pexprsnode4->type->table_size) { var14 = 0; } else { -var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4870); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6363); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { +var_tassignnode5 = var_nodearraylist8; +/* isa nullable TAssign */ +cltype18 = type_nullable_parser_nodes__TAssign.color; +idtype19 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { var17 = 1; } else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { +if(cltype18 >= var_tassignnode5->type->table_size) { var17 = 0; } else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var17 = var_tassignnode5->type->type_table[cltype18] == idtype19; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4872); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6365); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { +var_pexprnode6 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype21 = type_nullable_parser_nodes__AExpr.color; +idtype22 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { var20 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { +if(cltype21 >= var_pexprnode6->type->table_size) { var20 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; -} -} -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4874); -exit(1); -} -var23 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var23->class->vft[COLOR_array__Array__init]))(var23) /* init on */; -CHECK_NEW_array__Array(var23); -var_listnode12 = var23; -var_listnode11 = var_nodearraylist7; -/* isa Array[Object] */ -cltype25 = type_array__Arraykernel__Object.color; -idtype26 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var24 = 0; -} else { -if(cltype25 >= var_listnode11->type->table_size) { -var24 = 0; -} else { -var24 = var_listnode11->type->type_table[cltype25] == idtype26; -} -} -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4877); -exit(1); -} -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var27; -var28 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var29 = NULL; -var30 = NULL; -var31 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var28, var29, var30, var_listnode12, var31) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var28); -var_pannotationsnode8 = var28; -var_tkwendnode17 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype33 = type_nullable_parser_nodes__TKwend.color; -idtype34 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var32 = 1; -} else { -if(cltype33 >= var_tkwendnode17->type->table_size) { -var32 = 0; -} else { -var32 = var_tkwendnode17->type->type_table[cltype33] == idtype34; -} -} -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4886); -exit(1); -} -var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var36 = NULL; -var37 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var36, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var37, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var35); -var_pclassdefnode1 = var35; -var_node_list = var_pclassdefnode1; -var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var39 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var38) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var39, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction91#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction91__action(val* self, val* p0) { -parser__ReduceAction91__action(self, p0); -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_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* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; -int cltype; -int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var24 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : Array[Object] */; -val* var29 /* : AAnnotations */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var32 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -val* var36 /* : AStdClassdef */; -val* var37 /* : null */; -val* var38 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode15 = 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_listnode16 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; -} +var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4923); -exit(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* 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(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6367); +show_backtrace(1); } +var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4925); -exit(1); +var_pexprnode1 = var23; +var_node_list = var_pexprnode1; +var24 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var25 = parser_work__Parser__go_to(var_p, var24); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype19 = type_nullable_parser_nodes__AClasskind.color; -idtype20 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pclasskindnode5->type->table_size) { -var18 = 0; -} else { -var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20; +{ +parser_work__Parser__push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4927); -exit(1); +/* method parser#ReduceAction215#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction215__action(val* self, val* p0) { +parser__ReduceAction215__action(self, p0); /* Direct call parser#ReduceAction215#action on */ +RET_LABEL:; } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype22 = type_nullable_parser_nodes__TClassid.color; -idtype23 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_tclassidnode6->type->table_size) { -var21 = 0; -} else { -var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23; -} -} -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4929); -exit(1); -} -var24 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var24->class->vft[COLOR_array__Array__init]))(var24) /* init on */; -CHECK_NEW_array__Array(var24); -var_listnode12 = var24; -var_listnode11 = var_nodearraylist8; -/* isa Array[Object] */ -cltype26 = type_array__Arraykernel__Object.color; -idtype27 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var25 = 0; -} else { -if(cltype26 >= var_listnode11->type->table_size) { -var25 = 0; -} else { -var25 = var_listnode11->type->type_table[cltype26] == idtype27; -} -} -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4932); -exit(1); -} -var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var28; -var29 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var30 = NULL; -var31 = NULL; -var32 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var29, var30, var31, var_listnode12, var32) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var29); -var_pannotationsnode8 = var29; -var_tkwendnode17 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype34 = type_nullable_parser_nodes__TKwend.color; -idtype35 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var33 = 1; -} else { -if(cltype34 >= var_tkwendnode17->type->table_size) { -var33 = 0; -} else { -var33 = var_tkwendnode17->type->type_table[cltype34] == idtype35; -} -} -if (!var33) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4941); -exit(1); -} -var36 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var37 = NULL; -var38 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var36, var_pdocnode2, var37, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var38, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var36); -var_pclassdefnode1 = var36; -var_node_list = var_pclassdefnode1; -var39 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var40 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var39) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var40, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction92#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction92__action(val* self, val* p0) { -parser__ReduceAction92__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction94#action for (self: ReduceAction94, Parser) */ -void parser__ReduceAction94__action(val* self, val* p0) { +/* method parser#ReduceAction216#action for (self: ReduceAction216, Parser) */ +void parser__ReduceAction216__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* var2 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var14 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var18 /* : Bool */; int cltype19; -int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var32 /* : AAnnotations */; -val* var33 /* : null */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -val* var39 /* : AStdClassdef */; -val* var40 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var41 /* : Int */; -long var42 /* : Int */; +int idtype20; +val* var21 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode15 = 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_listnode16 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4978); -exit(1); +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; -} else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +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); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4980); -exit(1); +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var9 = 1; } else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; } else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var9 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4982); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6393); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype11 = type_nullable_parser_nodes__TId.color; +idtype12 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var10 = 1; } else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; +if(cltype11 >= var_tidnode3->type->table_size) { +var10 = 0; } else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4984); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6395); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var13 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var13->class->vft[COLOR_kernel__Object__init]))(var13) /* init on */; +} +var_listnode5 = var13; +var14 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var14, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var14; +var_tassignnode6 = var_nodearraylist7; +/* isa nullable TAssign */ +cltype16 = type_nullable_parser_nodes__TAssign.color; +idtype17 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var15 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype16 >= var_tassignnode6->type->table_size) { +var15 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var15 = var_tassignnode6->type->type_table[cltype16] == idtype17; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4986); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6401); +show_backtrace(1); } -var27 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var27->class->vft[COLOR_array__Array__init]))(var27) /* init on */; -CHECK_NEW_array__Array(var27); -var_listnode12 = var27; -var_listnode11 = var_nodearraylist8; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var28 = 0; +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var18 = 1; } else { -if(cltype29 >= var_listnode11->type->table_size) { -var28 = 0; +if(cltype19 >= var_pexprnode7->type->table_size) { +var18 = 0; } else { -var28 = var_listnode11->type->type_table[cltype29] == idtype30; +var18 = var_pexprnode7->type->type_table[cltype19] == idtype20; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4989); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6403); +show_backtrace(1); } -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var31; -var32 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var33 = NULL; -var34 = NULL; -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var32, var33, var34, var_listnode12, var35) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var32); -var_pannotationsnode8 = var32; -var_tkwendnode17 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype37 = type_nullable_parser_nodes__TKwend.color; -idtype38 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var36 = 1; -} else { -if(cltype37 >= var_tkwendnode17->type->table_size) { -var36 = 0; -} else { -var36 = var_tkwendnode17->type->type_table[cltype37] == idtype38; +var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var21; +var_node_list = var_pexprnode1; +var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var23 = parser_work__Parser__go_to(var_p, var22); } -if (!var36) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4998); -exit(1); +{ +parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } -var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var40 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var40, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var39); -var_pclassdefnode1 = var39; -var_node_list = var_pclassdefnode1; -var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var42 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var41) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var42, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction94#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction94__action(val* self, val* p0) { -parser__ReduceAction94__action(self, p0); +/* method parser#ReduceAction216#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction216__action(val* self, val* p0) { +parser__ReduceAction216__action(self, p0); /* Direct call parser#ReduceAction216#action on */ RET_LABEL:; } -/* method parser#ReduceAction95#action for (self: ReduceAction95, Parser) */ -void parser__ReduceAction95__action(val* self, val* p0) { +/* method parser#ReduceAction219#action for (self: ReduceAction219, Parser) */ +void parser__ReduceAction219__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var32 /* : Array[Object] */; -val* var33 /* : AAnnotations */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var37 /* : Bool */; -int cltype38; -int idtype39; -val* var40 /* : AStdClassdef */; -val* var41 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var42 /* : Int */; -long var43 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode7 = 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_listnode15 = 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_listnode16 = var14; -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) { -var15 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; } else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; +var7 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5036); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6426); +show_backtrace(1); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype17 = type_nullable_parser_nodes__TKwredef.color; -idtype18 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var16 = 1; +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype9 = type_nullable_parser_nodes__AExprs.color; +idtype10 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var8 = 1; } else { -if(cltype17 >= var_tkwredefnode3->type->table_size) { -var16 = 0; +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; } else { -var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18; +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5038); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype20 = type_nullable_parser_nodes__AVisibility.color; -idtype21 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var19 = 1; -} else { -if(cltype20 >= var_pvisibilitynode4->type->table_size) { -var19 = 0; -} else { -var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21; -} -} -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5040); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6428); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype23 = type_nullable_parser_nodes__AClasskind.color; -idtype24 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var22 = 1; +var_tassignnode5 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype12 = type_nullable_parser_nodes__TAssign.color; +idtype13 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var11 = 1; } else { -if(cltype23 >= var_pclasskindnode5->type->table_size) { -var22 = 0; +if(cltype12 >= var_tassignnode5->type->table_size) { +var11 = 0; } else { -var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24; +var11 = var_tassignnode5->type->type_table[cltype12] == idtype13; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5042); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6430); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype26 = type_nullable_parser_nodes__TClassid.color; -idtype27 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var25 = 1; +var_pexprnode6 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var14 = 1; } else { -if(cltype26 >= var_tclassidnode6->type->table_size) { -var25 = 0; +if(cltype15 >= var_pexprnode6->type->table_size) { +var14 = 0; } else { -var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27; -} +var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5044); -exit(1); } -var28 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on */; -CHECK_NEW_array__Array(var28); -var_listnode12 = var28; -var_listnode11 = var_nodearraylist9; -/* isa Array[Object] */ -cltype30 = type_array__Arraykernel__Object.color; -idtype31 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var29 = 0; -} else { -if(cltype30 >= var_listnode11->type->table_size) { -var29 = 0; -} else { -var29 = var_listnode11->type->type_table[cltype30] == idtype31; +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6432); +show_backtrace(1); } +var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5047); -exit(1); +var_pexprnode1 = var17; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); } -var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var32; -var33 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var34 = NULL; -var35 = NULL; -var36 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode12, var36) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var33); -var_pannotationsnode8 = var33; -var_tkwendnode17 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype38 = type_nullable_parser_nodes__TKwend.color; -idtype39 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var37 = 1; -} else { -if(cltype38 >= var_tkwendnode17->type->table_size) { -var37 = 0; -} else { -var37 = var_tkwendnode17->type->type_table[cltype38] == idtype39; +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var37) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5056); -exit(1); +/* method parser#ReduceAction219#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction219__action(val* self, val* p0) { +parser__ReduceAction219__action(self, p0); /* Direct call parser#ReduceAction219#action on */ +RET_LABEL:; } -var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var41 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var41, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var40); -var_pclassdefnode1 = var40; -var_node_list = var_pclassdefnode1; -var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var43 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var42) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var43, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction95#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction95__action(val* self, val* p0) { -parser__ReduceAction95__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction97#action for (self: ReduceAction97, Parser) */ -void parser__ReduceAction97__action(val* self, val* p0) { +/* method parser#ReduceAction220#action for (self: ReduceAction220, Parser) */ +void parser__ReduceAction220__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var27 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var32 /* : AAnnotations */; -val* var33 /* : null */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -val* var39 /* : AStdClassdef */; -val* var40 /* : null */; -val* var41 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var42 /* : Int */; -long var43 /* : Int */; +val* var7 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var8 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode8 = var10; -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_listnode16 = 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_listnode17 = var12; -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) { -var13 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ +RET_LABEL5:(void)0; +} +} +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var6 = 1; +} else { +if(cltype >= var_tidnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_tidnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6454); +show_backtrace(1); +} +var7 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on */; +} +var_listnode5 = var7; +var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var8; +var_tassignnode6 = var_nodearraylist2; +/* isa nullable TAssign */ +cltype10 = type_nullable_parser_nodes__TAssign.color; +idtype11 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var9 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; +if(cltype10 >= var_tassignnode6->type->table_size) { +var9 = 0; } else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +var9 = var_tassignnode6->type->type_table[cltype10] == idtype11; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5092); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6460); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype15 = type_nullable_parser_nodes__AVisibility.color; -idtype16 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var14 = 1; +var_pexprnode7 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype13 = type_nullable_parser_nodes__AExpr.color; +idtype14 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var12 = 1; } else { -if(cltype15 >= var_pvisibilitynode4->type->table_size) { -var14 = 0; +if(cltype13 >= var_pexprnode7->type->table_size) { +var12 = 0; } else { -var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +var12 = var_pexprnode7->type->type_table[cltype13] == idtype14; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5094); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6462); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { -var17 = 0; -} else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var15 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5096); -exit(1); +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var20 = 1; -} else { -if(cltype21 >= var_tclassidnode6->type->table_size) { -var20 = 0; -} else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; -} -} -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5098); -exit(1); -} -var_listnode7 = var_nodearraylist6; -/* isa Array[Object] */ -cltype24 = type_array__Arraykernel__Object.color; -idtype25 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var23 = 0; -} else { -if(cltype24 >= var_listnode7->type->table_size) { -var23 = 0; -} else { -var23 = var_listnode7->type->type_table[cltype24] == idtype25; -} -} -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5100); -exit(1); -} -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var26; -var27 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var27->class->vft[COLOR_array__Array__init]))(var27) /* init on */; -CHECK_NEW_array__Array(var27); -var_listnode13 = var27; -var_listnode12 = var_nodearraylist7; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var28 = 0; -} else { -if(cltype29 >= var_listnode12->type->table_size) { -var28 = 0; -} else { -var28 = var_listnode12->type->type_table[cltype29] == idtype30; -} -} -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5104); -exit(1); -} -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var31; -var32 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var33 = NULL; -var34 = NULL; -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var32, var33, var34, var_listnode13, var35) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var32); -var_pannotationsnode9 = var32; -var_tkwendnode18 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype37 = type_nullable_parser_nodes__TKwend.color; -idtype38 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var36 = 1; -} else { -if(cltype37 >= var_tkwendnode18->type->table_size) { -var36 = 0; -} else { -var36 = var_tkwendnode18->type->type_table[cltype37] == idtype38; -} -} -if (!var36) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5113); -exit(1); -} -var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var40 = NULL; -var41 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var40, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var41, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var39); -var_pclassdefnode1 = var39; -var_node_list = var_pclassdefnode1; -var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var43 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var42) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var43, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction97#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction97__action(val* self, val* p0) { -parser__ReduceAction97__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction98#action for (self: ReduceAction98, Parser) */ -void parser__ReduceAction98__action(val* self, val* p0) { +RET_LABEL:; +} +/* method parser#ReduceAction220#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction220__action(val* self, val* p0) { +parser__ReduceAction220__action(self, p0); /* Direct call parser#ReduceAction220#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction221#action for (self: ReduceAction221, Parser) */ +void parser__ReduceAction221__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* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var6 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : Array[Object] */; -val* var31 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var35 /* : Array[Object] */; -val* var36 /* : AAnnotations */; -val* var37 /* : null */; -val* var38 /* : null */; -val* var39 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var40 /* : Bool */; -int cltype41; -int idtype42; -val* var43 /* : AStdClassdef */; -val* var44 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var45 /* : Int */; -long var46 /* : Int */; +val* var18 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode16 = 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_listnode17 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5150); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ +RET_LABEL7:(void)0; +} +} +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +var8 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5152); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6486); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype10 = type_nullable_parser_nodes__AExprs.color; +idtype11 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var9 = 1; } else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; +if(cltype10 >= var_pexprsnode4->type->table_size) { +var9 = 0; } else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5154); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6488); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; -} else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; -} -} -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5156); -exit(1); -} -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_tassignnode5 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype13 = type_nullable_parser_nodes__TAssign.color; +idtype14 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var12 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype13 >= var_tassignnode5->type->table_size) { +var12 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var12 = var_tassignnode5->type->type_table[cltype13] == idtype14; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5158); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6490); +show_backtrace(1); } -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype28 = type_array__Arraykernel__Object.color; -idtype29 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var27 = 0; +var_pexprnode6 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype16 = type_nullable_parser_nodes__AExpr.color; +idtype17 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var15 = 1; } else { -if(cltype28 >= var_listnode7->type->table_size) { -var27 = 0; +if(cltype16 >= var_pexprnode6->type->table_size) { +var15 = 0; } else { -var27 = var_listnode7->type->type_table[cltype28] == idtype29; +var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5160); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6492); +show_backtrace(1); } -var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var30; -var31 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on */; -CHECK_NEW_array__Array(var31); -var_listnode13 = var31; -var_listnode12 = var_nodearraylist8; -/* isa Array[Object] */ -cltype33 = type_array__Arraykernel__Object.color; -idtype34 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var32 = 0; -} else { -if(cltype33 >= var_listnode12->type->table_size) { -var32 = 0; -} else { -var32 = var_listnode12->type->type_table[cltype33] == idtype34; +var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var18; +var_node_list = var_pexprnode1; +var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var20 = parser_work__Parser__go_to(var_p, var19); } -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5164); -exit(1); -} -var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var35; -var36 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var37 = NULL; -var38 = NULL; -var39 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var36, var37, var38, var_listnode13, var39) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var36); -var_pannotationsnode9 = var36; -var_tkwendnode18 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype41 = type_nullable_parser_nodes__TKwend.color; -idtype42 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var40 = 1; -} else { -if(cltype41 >= var_tkwendnode18->type->table_size) { -var40 = 0; -} else { -var40 = var_tkwendnode18->type->type_table[cltype41] == idtype42; +{ +parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var40) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5173); -exit(1); +/* method parser#ReduceAction221#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction221__action(val* self, val* p0) { +parser__ReduceAction221__action(self, p0); /* Direct call parser#ReduceAction221#action on */ +RET_LABEL:; } -var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var44 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var44, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var43); -var_pclassdefnode1 = var43; -var_node_list = var_pclassdefnode1; -var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var46 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var45) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var46, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction98#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction98__action(val* self, val* p0) { -parser__ReduceAction98__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction99#action for (self: ReduceAction99, Parser) */ -void parser__ReduceAction99__action(val* self, val* p0) { +/* method parser#ReduceAction222#action for (self: ReduceAction222, Parser) */ +void parser__ReduceAction222__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var28 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var32 /* : Array[Object] */; -val* var33 /* : AAnnotations */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var37 /* : Bool */; -int cltype38; -int idtype39; -val* var40 /* : AStdClassdef */; -val* var41 /* : null */; -val* var42 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var43 /* : Int */; -long var44 /* : Int */; +val* var8 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var9 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode16 = 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_listnode17 = var13; -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) { -var14 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; } else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +var7 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5210); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6515); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype16 = type_nullable_parser_nodes__AVisibility.color; -idtype17 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var15 = 1; +var8 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on */; +} +var_listnode5 = var8; +var9 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var9; +var_tassignnode6 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype11 = type_nullable_parser_nodes__TAssign.color; +idtype12 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_tassignnode6->type->table_size) { +var10 = 0; +} else { +var10 = var_tassignnode6->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6521); +show_backtrace(1); +} +var_pexprnode7 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype14 = type_nullable_parser_nodes__AExpr.color; +idtype15 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var13 = 1; } else { -if(cltype16 >= var_pvisibilitynode4->type->table_size) { -var15 = 0; +if(cltype14 >= var_pexprnode7->type->table_size) { +var13 = 0; } else { -var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; +var13 = var_pexprnode7->type->type_table[cltype14] == idtype15; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5212); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6523); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype19 = type_nullable_parser_nodes__AClasskind.color; -idtype20 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pclasskindnode5->type->table_size) { -var18 = 0; -} else { -var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20; +var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } +var_pexprnode1 = var16; +var_node_list = var_pexprnode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5214); -exit(1); +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype22 = type_nullable_parser_nodes__TClassid.color; -idtype23 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_tclassidnode6->type->table_size) { -var21 = 0; -} else { -var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23; -} -} -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5216); -exit(1); -} -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype25 = type_array__Arraykernel__Object.color; -idtype26 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var24 = 0; -} else { -if(cltype25 >= var_listnode7->type->table_size) { -var24 = 0; -} else { -var24 = var_listnode7->type->type_table[cltype25] == idtype26; -} -} -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5218); -exit(1); -} -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var27; -var28 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on */; -CHECK_NEW_array__Array(var28); -var_listnode13 = var28; -var_listnode12 = var_nodearraylist8; -/* isa Array[Object] */ -cltype30 = type_array__Arraykernel__Object.color; -idtype31 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var29 = 0; -} else { -if(cltype30 >= var_listnode12->type->table_size) { -var29 = 0; -} else { -var29 = var_listnode12->type->type_table[cltype30] == idtype31; -} -} -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5222); -exit(1); -} -var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var32; -var33 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var34 = NULL; -var35 = NULL; -var36 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode13, var36) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var33); -var_pannotationsnode9 = var33; -var_tkwendnode18 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype38 = type_nullable_parser_nodes__TKwend.color; -idtype39 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var37 = 1; -} else { -if(cltype38 >= var_tkwendnode18->type->table_size) { -var37 = 0; -} else { -var37 = var_tkwendnode18->type->type_table[cltype38] == idtype39; -} -} -if (!var37) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5231); -exit(1); -} -var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var41 = NULL; -var42 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var41, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var42, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var40); -var_pclassdefnode1 = var40; -var_node_list = var_pclassdefnode1; -var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var44 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var43) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var44, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction99#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction99__action(val* self, val* p0) { -parser__ReduceAction99__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction100#action for (self: ReduceAction100, Parser) */ -void parser__ReduceAction100__action(val* self, val* p0) { +RET_LABEL:; +} +/* method parser#ReduceAction222#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction222__action(val* self, val* p0) { +parser__ReduceAction222__action(self, p0); /* Direct call parser#ReduceAction222#action on */ +RET_LABEL:; +} +/* method parser#ReduceAction223#action for (self: ReduceAction223, Parser) */ +void parser__ReduceAction223__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var7 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : Array[Object] */; -val* var29 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -val* var33 /* : Array[Object] */; -val* var34 /* : AAnnotations */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var37 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var38 /* : Bool */; -int cltype39; -int idtype40; -val* var41 /* : AStdClassdef */; -val* var42 /* : null */; -val* var43 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var44 /* : Int */; -long var45 /* : Int */; +val* var19 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode16 = 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_listnode17 = var14; -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) { -var15 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; -} else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist6 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5269); -exit(1); +var_nodearraylist5 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype17 = type_nullable_parser_nodes__AVisibility.color; -idtype18 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_pvisibilitynode4->type->table_size) { -var16 = 0; -} else { -var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18; +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5271); -exit(1); +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype20 = type_nullable_parser_nodes__AClasskind.color; -idtype21 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var19 = 1; -} else { -if(cltype20 >= var_pclasskindnode5->type->table_size) { -var19 = 0; -} else { -var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21; -} -} -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5273); -exit(1); -} -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype23 = type_nullable_parser_nodes__TClassid.color; -idtype24 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var22 = 1; +var_nodearraylist1 = var6; +var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var7) on */ +RET_LABEL8:(void)0; +} +} +var_pexprnode2 = var7; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype23 >= var_tclassidnode6->type->table_size) { -var22 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24; +var9 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5275); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6548); +show_backtrace(1); } -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype26 = type_array__Arraykernel__Object.color; -idtype27 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var25 = 0; +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype11 = type_nullable_parser_nodes__AExprs.color; +idtype12 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var10 = 1; } else { -if(cltype26 >= var_listnode7->type->table_size) { -var25 = 0; +if(cltype11 >= var_pexprsnode4->type->table_size) { +var10 = 0; } else { -var25 = var_listnode7->type->type_table[cltype26] == idtype27; +var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; } } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5277); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6550); +show_backtrace(1); } -var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var28; -var29 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on */; -CHECK_NEW_array__Array(var29); -var_listnode13 = var29; -var_listnode12 = var_nodearraylist9; -/* isa Array[Object] */ -cltype31 = type_array__Arraykernel__Object.color; -idtype32 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var30 = 0; +var_tassignnode5 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype14 = type_nullable_parser_nodes__TAssign.color; +idtype15 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode5 == NULL) { +var13 = 1; } else { -if(cltype31 >= var_listnode12->type->table_size) { -var30 = 0; +if(cltype14 >= var_tassignnode5->type->table_size) { +var13 = 0; } else { -var30 = var_listnode12->type->type_table[cltype31] == idtype32; +var13 = var_tassignnode5->type->type_table[cltype14] == idtype15; } } -if (!var30) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5281); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6552); +show_backtrace(1); } -var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var33; -var34 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var35 = NULL; -var36 = NULL; -var37 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode13, var37) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var34); -var_pannotationsnode9 = var34; -var_tkwendnode18 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype39 = type_nullable_parser_nodes__TKwend.color; -idtype40 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var38 = 1; +var_pexprnode6 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var16 = 1; } else { -if(cltype39 >= var_tkwendnode18->type->table_size) { -var38 = 0; +if(cltype17 >= var_pexprnode6->type->table_size) { +var16 = 0; } else { -var38 = var_tkwendnode18->type->type_table[cltype39] == idtype40; +var16 = var_pexprnode6->type->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6554); +show_backtrace(1); +} +var19 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +} +var_pexprnode1 = var19; +var_node_list = var_pexprnode1; +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 */ } -if (!var38) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5290); -exit(1); +RET_LABEL:; +} +/* method parser#ReduceAction223#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction223__action(val* self, val* p0) { +parser__ReduceAction223__action(self, p0); /* Direct call parser#ReduceAction223#action on */ +RET_LABEL:; } -var41 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var42 = NULL; -var43 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var41->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var41, var_pdocnode2, var42, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var43, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var41); -var_pclassdefnode1 = var41; -var_node_list = var_pclassdefnode1; -var44 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var45 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var44) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var45, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction100#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction100__action(val* self, val* p0) { -parser__ReduceAction100__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction102#action for (self: ReduceAction102, Parser) */ -void parser__ReduceAction102__action(val* self, val* p0) { +/* method parser#ReduceAction224#action for (self: ReduceAction224, Parser) */ +void parser__ReduceAction224__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var6 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var32 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -val* var36 /* : Array[Object] */; -val* var37 /* : AAnnotations */; -val* var38 /* : null */; -val* var39 /* : null */; -val* var40 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var41 /* : Bool */; -int cltype42; -int idtype43; -val* var44 /* : AStdClassdef */; -val* var45 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var46 /* : Int */; -long var47 /* : Int */; +val* var9 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var10 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode16 = 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_listnode17 = var14; -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) { -var15 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; -} else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5328); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype17 = type_nullable_parser_nodes__TKwredef.color; -idtype18 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var16 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ +RET_LABEL7:(void)0; +} +} +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype17 >= var_tkwredefnode3->type->table_size) { -var16 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18; +var8 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5330); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6578); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype20 = type_nullable_parser_nodes__AVisibility.color; -idtype21 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var19 = 1; +var9 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on */; +} +var_listnode5 = var9; +var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var10; +var_tassignnode6 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype12 = type_nullable_parser_nodes__TAssign.color; +idtype13 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode6 == NULL) { +var11 = 1; } else { -if(cltype20 >= var_pvisibilitynode4->type->table_size) { -var19 = 0; +if(cltype12 >= var_tassignnode6->type->table_size) { +var11 = 0; } else { -var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21; +var11 = var_tassignnode6->type->type_table[cltype12] == idtype13; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5332); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype23 = type_nullable_parser_nodes__AClasskind.color; -idtype24 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var22 = 1; -} else { -if(cltype23 >= var_pclasskindnode5->type->table_size) { -var22 = 0; -} else { -var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24; -} -} -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5334); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6584); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype26 = type_nullable_parser_nodes__TClassid.color; -idtype27 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var25 = 1; +var_pexprnode7 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var14 = 1; } else { -if(cltype26 >= var_tclassidnode6->type->table_size) { -var25 = 0; +if(cltype15 >= var_pexprnode7->type->table_size) { +var14 = 0; } else { -var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27; +var14 = var_pexprnode7->type->type_table[cltype15] == idtype16; } } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5336); -exit(1); -} -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var28 = 0; -} else { -if(cltype29 >= var_listnode7->type->table_size) { -var28 = 0; -} else { -var28 = var_listnode7->type->type_table[cltype29] == idtype30; -} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6586); +show_backtrace(1); } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5338); -exit(1); +var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +{ +parser_prod__ACallAssignExpr__init_acallassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var31; -var32 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var32->class->vft[COLOR_array__Array__init]))(var32) /* init on */; -CHECK_NEW_array__Array(var32); -var_listnode13 = var32; -var_listnode12 = var_nodearraylist9; -/* isa Array[Object] */ -cltype34 = type_array__Arraykernel__Object.color; -idtype35 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var33 = 0; -} else { -if(cltype34 >= var_listnode12->type->table_size) { -var33 = 0; -} else { -var33 = var_listnode12->type->type_table[cltype34] == idtype35; +var_pexprnode1 = var17; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); } +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } -if (!var33) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5342); -exit(1); +RET_LABEL:; } -var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var36; -var37 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var38 = NULL; -var39 = NULL; -var40 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var37, var38, var39, var_listnode13, var40) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var37); -var_pannotationsnode9 = var37; -var_tkwendnode18 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype42 = type_nullable_parser_nodes__TKwend.color; -idtype43 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var41 = 1; -} else { -if(cltype42 >= var_tkwendnode18->type->table_size) { -var41 = 0; -} else { -var41 = var_tkwendnode18->type->type_table[cltype42] == idtype43; -} -} -if (!var41) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5351); -exit(1); +/* method parser#ReduceAction224#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction224__action(val* self, val* p0) { +parser__ReduceAction224__action(self, p0); /* Direct call parser#ReduceAction224#action on */ +RET_LABEL:; } -var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var45 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var45, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var44); -var_pclassdefnode1 = var44; -var_node_list = var_pclassdefnode1; -var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var47 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var46) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var47, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction102#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction102__action(val* self, val* p0) { -parser__ReduceAction102__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction103#action for (self: ReduceAction103, Parser) */ -void parser__ReduceAction103__action(val* self, val* p0) { +/* method parser#ReduceAction227#action for (self: ReduceAction227, Parser) */ +void parser__ReduceAction227__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_nodearraylist12 /* var nodearraylist12: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var8 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var9 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var10 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var11 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var12 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var13 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var15 /* : Array[Object] */; -val* var_listnode17 /* var listnode17: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var16 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var32 /* : Array[Object] */; -val* var33 /* : Array[Object] */; -val* var_listnode13 /* var listnode13: Array[Object] */; -val* var_listnode12 /* var listnode12: nullable Object */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -val* var37 /* : Array[Object] */; -val* var38 /* : AAnnotations */; -val* var39 /* : null */; -val* var40 /* : null */; -val* var41 /* : null */; -val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */; -val* var_tkwendnode18 /* var tkwendnode18: nullable Object */; -short int var42 /* : Bool */; -int cltype43; -int idtype44; -val* var45 /* : AStdClassdef */; -val* var46 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var47 /* : Int */; -long var48 /* : Int */; +val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ABraAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */; +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_nodearraylist12 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist11 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var11; -var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode16 = var14; -var15 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on */; -CHECK_NEW_array__Array(var15); -var_listnode17 = var15; -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) { -var16 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var16 = 0; -} else { -var16 = 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 (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5390); -exit(1); +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype18 = type_nullable_parser_nodes__TKwredef.color; -idtype19 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var17 = 1; +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var5 = 1; } else { -if(cltype18 >= var_tkwredefnode3->type->table_size) { -var17 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5392); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6608); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype21 = type_nullable_parser_nodes__AVisibility.color; -idtype22 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var20 = 1; +var_pexprsnode3 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype7 = type_nullable_parser_nodes__AExprs.color; +idtype8 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode3 == NULL) { +var6 = 1; } else { -if(cltype21 >= var_pvisibilitynode4->type->table_size) { -var20 = 0; +if(cltype7 >= var_pexprsnode3->type->table_size) { +var6 = 0; } else { -var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22; +var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5394); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype24 = type_nullable_parser_nodes__AClasskind.color; -idtype25 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var23 = 1; -} else { -if(cltype24 >= var_pclasskindnode5->type->table_size) { -var23 = 0; -} else { -var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25; -} -} -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5396); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6610); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype27 = type_nullable_parser_nodes__TClassid.color; -idtype28 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var26 = 1; +var_tassignnode4 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype10 = type_nullable_parser_nodes__TAssign.color; +idtype11 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { +var9 = 1; } else { -if(cltype27 >= var_tclassidnode6->type->table_size) { -var26 = 0; +if(cltype10 >= var_tassignnode4->type->table_size) { +var9 = 0; } else { -var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28; +var9 = var_tassignnode4->type->type_table[cltype10] == idtype11; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5398); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6612); +show_backtrace(1); } -var_listnode7 = var_nodearraylist9; -/* isa Array[Object] */ -cltype30 = type_array__Arraykernel__Object.color; -idtype31 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var29 = 0; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype13 = type_nullable_parser_nodes__AExpr.color; +idtype14 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var12 = 1; } else { -if(cltype30 >= var_listnode7->type->table_size) { -var29 = 0; +if(cltype13 >= var_pexprnode5->type->table_size) { +var12 = 0; } else { -var29 = var_listnode7->type->type_table[cltype30] == idtype31; +var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; } } -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5400); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6614); +show_backtrace(1); } -var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var32; -var33 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on */; -CHECK_NEW_array__Array(var33); -var_listnode13 = var33; -var_listnode12 = var_nodearraylist10; -/* isa Array[Object] */ -cltype35 = type_array__Arraykernel__Object.color; -idtype36 = type_array__Arraykernel__Object.id; -if(var_listnode12 == NULL) { -var34 = 0; -} else { -if(cltype35 >= var_listnode12->type->table_size) { -var34 = 0; -} else { -var34 = var_listnode12->type->type_table[cltype35] == idtype36; +var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr); +{ +parser_prod__ABraAssignExpr__init_abraassignexpr(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#ABraAssignExpr#init_abraassignexpr on */ } +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); } -if (!var34) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5404); -exit(1); +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } -var37 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on */; -var_listnode13 = var37; -var38 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var39 = NULL; -var40 = NULL; -var41 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var38, var39, var40, var_listnode13, var41) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var38); -var_pannotationsnode9 = var38; -var_tkwendnode18 = var_nodearraylist12; -/* isa nullable TKwend */ -cltype43 = type_nullable_parser_nodes__TKwend.color; -idtype44 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode18 == NULL) { -var42 = 1; -} else { -if(cltype43 >= var_tkwendnode18->type->table_size) { -var42 = 0; -} else { -var42 = var_tkwendnode18->type->type_table[cltype43] == idtype44; -} -} -if (!var42) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5413); -exit(1); +RET_LABEL:; +} +/* method parser#ReduceAction227#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction227__action(val* self, val* p0) { +parser__ReduceAction227__action(self, p0); /* Direct call parser#ReduceAction227#action on */ +RET_LABEL:; } -var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var46 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var46, var_listnode16, var_listnode17, var_tkwendnode18) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var45); -var_pclassdefnode1 = var45; -var_node_list = var_pclassdefnode1; -var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var48 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var47) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var48, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction103#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction103__action(val* self, val* p0) { -parser__ReduceAction103__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction105#action for (self: ReduceAction105, Parser) */ -void parser__ReduceAction105__action(val* self, val* p0) { +/* method parser#ReduceAction228#action for (self: ReduceAction228, Parser) */ +void parser__ReduceAction228__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var10 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var12 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : AStdClassdef */; -val* var29 /* : null */; -val* var30 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var31 /* : Int */; -long var32 /* : Int */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var18 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +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_nodearraylist8 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode7 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode10 = var10; -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_listnode11 = var11; -var_pdocnode2 = var_nodearraylist1; -/* isa nullable ADoc */ -cltype = type_nullable_parser_nodes__ADoc.color; -idtype = type_nullable_parser_nodes__ADoc.id; -if(var_pdocnode2 == NULL) { -var12 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var12 = 0; -} else { -var12 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5448); -exit(1); +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* 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; +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); } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5450); -exit(1); +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype17 = type_nullable_parser_nodes__AClasskind.color; -idtype18 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var16 = 1; +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype17 >= var_pclasskindnode5->type->table_size) { -var16 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var16 = var_pclasskindnode5->type->type_table[cltype17] == idtype18; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5452); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6638); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype20 = type_nullable_parser_nodes__TClassid.color; -idtype21 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var19 = 1; +var_tattridnode3 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype10 = type_nullable_parser_nodes__TAttrid.color; +idtype11 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var9 = 1; } else { -if(cltype20 >= var_tclassidnode6->type->table_size) { -var19 = 0; +if(cltype10 >= var_tattridnode3->type->table_size) { +var9 = 0; } else { -var19 = var_tclassidnode6->type->type_table[cltype20] == idtype21; +var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5454); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6640); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist6; -/* isa nullable AExternCodeBlock */ -cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var22 = 1; +var_passignopnode4 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype13 = type_nullable_parser_nodes__AAssignOp.color; +idtype14 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var12 = 1; } else { -if(cltype23 >= var_pexterncodeblocknode9->type->table_size) { -var22 = 0; +if(cltype13 >= var_passignopnode4->type->table_size) { +var12 = 0; } else { -var22 = var_pexterncodeblocknode9->type->type_table[cltype23] == idtype24; +var12 = var_passignopnode4->type->type_table[cltype13] == idtype14; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5456); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6642); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist8; -/* isa nullable TKwend */ -cltype26 = type_nullable_parser_nodes__TKwend.color; -idtype27 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var25 = 1; +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype16 = type_nullable_parser_nodes__AExpr.color; +idtype17 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var15 = 1; } else { -if(cltype26 >= var_tkwendnode12->type->table_size) { -var25 = 0; +if(cltype16 >= var_pexprnode5->type->table_size) { +var15 = 0; } else { -var25 = var_tkwendnode12->type->type_table[cltype26] == idtype27; +var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6644); +show_backtrace(1); +} +var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +{ +parser_prod__AAttrReassignExpr__init_aattrreassignexpr(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ } +var_pexprnode1 = var18; +var_node_list = var_pexprnode1; +var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var20 = parser_work__Parser__go_to(var_p, var19); } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5458); -exit(1); +{ +parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ } -var28 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var29 = NULL; -var30 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var28, var_pdocnode2, var29, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var30, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var28); -var_pclassdefnode1 = var28; -var_node_list = var_pclassdefnode1; -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#ReduceAction105#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction105__action(val* self, val* p0) { -parser__ReduceAction105__action(self, p0); +/* method parser#ReduceAction228#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction228__action(val* self, val* p0) { +parser__ReduceAction228__action(self, p0); /* Direct call parser#ReduceAction228#action on */ RET_LABEL:; } -/* method parser#ReduceAction106#action for (self: ReduceAction106, Parser) */ -void parser__ReduceAction106__action(val* self, val* p0) { +/* method parser#ReduceAction229#action for (self: ReduceAction229, Parser) */ +void parser__ReduceAction229__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var32 /* : AStdClassdef */; -val* var33 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var34 /* : Int */; -long var35 /* : Int */; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode10 = 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_listnode11 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5494); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype15 = type_nullable_parser_nodes__TKwredef.color; -idtype16 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_tkwredefnode3->type->table_size) { -var14 = 0; -} else { -var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16; -} -} -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5496); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype18 = type_nullable_parser_nodes__AVisibility.color; -idtype19 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_pvisibilitynode4->type->table_size) { -var17 = 0; -} else { -var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19; -} -} -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5498); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype21 = type_nullable_parser_nodes__AClasskind.color; -idtype22 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var20 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tattridnode3 = var_nodearraylist2; +/* isa nullable TAttrid */ +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var7 = 1; } else { -if(cltype21 >= var_pclasskindnode5->type->table_size) { -var20 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var7 = 0; } else { -var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22; +var7 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5500); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6666); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype24 = type_nullable_parser_nodes__TClassid.color; -idtype25 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var23 = 1; +var_passignopnode4 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype9 = type_nullable_parser_nodes__AAssignOp.color; +idtype10 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var8 = 1; } else { -if(cltype24 >= var_tclassidnode6->type->table_size) { -var23 = 0; +if(cltype9 >= var_passignopnode4->type->table_size) { +var8 = 0; } else { -var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25; +var8 = var_passignopnode4->type->type_table[cltype9] == idtype10; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5502); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6668); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist7; -/* isa nullable AExternCodeBlock */ -cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var26 = 1; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype12 = type_nullable_parser_nodes__AExpr.color; +idtype13 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var11 = 1; } else { -if(cltype27 >= var_pexterncodeblocknode9->type->table_size) { -var26 = 0; +if(cltype12 >= var_pexprnode5->type->table_size) { +var11 = 0; } else { -var26 = var_pexterncodeblocknode9->type->type_table[cltype27] == idtype28; +var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5504); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6670); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype30 = type_nullable_parser_nodes__TKwend.color; -idtype31 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var29 = 1; -} else { -if(cltype30 >= var_tkwendnode12->type->table_size) { -var29 = 0; -} else { -var29 = var_tkwendnode12->type->type_table[cltype30] == idtype31; +var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +{ +parser_prod__AAttrReassignExpr__init_aattrreassignexpr(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ } +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = parser_work__Parser__go_to(var_p, var15); } -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5506); -exit(1); +{ +parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } -var32 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var33 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var32, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var33, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var32); -var_pclassdefnode1 = var32; -var_node_list = var_pclassdefnode1; -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#ReduceAction106#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction106__action(val* self, val* p0) { -parser__ReduceAction106__action(self, p0); +/* method parser#ReduceAction229#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction229__action(val* self, val* p0) { +parser__ReduceAction229__action(self, p0); /* Direct call parser#ReduceAction229#action on */ RET_LABEL:; } -/* method parser#ReduceAction107#action for (self: ReduceAction107, Parser) */ -void parser__ReduceAction107__action(val* self, val* p0) { +/* method parser#ReduceAction230#action for (self: ReduceAction230, Parser) */ +void parser__ReduceAction230__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* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var29 /* : AStdClassdef */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var32 /* : Int */; -long var33 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode10 = 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_listnode11 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +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); } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5542); -exit(1); +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype15 = type_nullable_parser_nodes__AVisibility.color; -idtype16 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var14 = 1; +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_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype15 >= var_pvisibilitynode4->type->table_size) { -var14 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5544); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6694); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var17 = 1; +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { -var17 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5546); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6696); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var20 = 1; +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype13 = type_nullable_parser_nodes__AExprs.color; +idtype14 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var12 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { -var20 = 0; +if(cltype13 >= var_pexprsnode4->type->table_size) { +var12 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; +var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5548); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6698); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist7; -/* isa nullable AExternCodeBlock */ -cltype24 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype25 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var23 = 1; +var_passignopnode5 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype16 = type_nullable_parser_nodes__AAssignOp.color; +idtype17 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var15 = 1; } else { -if(cltype24 >= var_pexterncodeblocknode9->type->table_size) { -var23 = 0; +if(cltype16 >= var_passignopnode5->type->table_size) { +var15 = 0; } else { -var23 = var_pexterncodeblocknode9->type->type_table[cltype24] == idtype25; +var15 = var_passignopnode5->type->type_table[cltype16] == idtype17; } } -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5550); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6700); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype27 = type_nullable_parser_nodes__TKwend.color; -idtype28 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var26 = 1; +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var18 = 1; } else { -if(cltype27 >= var_tkwendnode12->type->table_size) { -var26 = 0; +if(cltype19 >= var_pexprnode6->type->table_size) { +var18 = 0; } else { -var26 = var_tkwendnode12->type->type_table[cltype27] == idtype28; +var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5552); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6702); +show_backtrace(1); +} +var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +} +var_pexprnode1 = var21; +var_node_list = var_pexprnode1; +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 */ } -var29 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var30 = NULL; -var31 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var31, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var29); -var_pclassdefnode1 = var29; -var_node_list = var_pclassdefnode1; -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#ReduceAction107#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction107__action(val* self, val* p0) { -parser__ReduceAction107__action(self, p0); +/* method parser#ReduceAction230#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction230__action(val* self, val* p0) { +parser__ReduceAction230__action(self, p0); /* Direct call parser#ReduceAction230#action on */ RET_LABEL:; } -/* method parser#ReduceAction108#action for (self: ReduceAction108, Parser) */ -void parser__ReduceAction108__action(val* self, val* p0) { +/* method parser#ReduceAction231#action for (self: ReduceAction231, Parser) */ +void parser__ReduceAction231__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* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : AStdClassdef */; -val* var31 /* : null */; -val* var32 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var33 /* : Int */; -long var34 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var12 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode10 = 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_listnode11 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist6 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5589); -exit(1); +var_nodearraylist5 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* 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; +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5591); -exit(1); +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype19 = type_nullable_parser_nodes__AClasskind.color; -idtype20 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var18 = 1; +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var7 = 1; } else { -if(cltype19 >= var_pclasskindnode5->type->table_size) { -var18 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var7 = 0; } else { -var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20; +var7 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5593); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6726); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype22 = type_nullable_parser_nodes__TClassid.color; -idtype23 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var21 = 1; +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype9 = type_nullable_parser_nodes__TId.color; +idtype10 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype22 >= var_tclassidnode6->type->table_size) { -var21 = 0; +if(cltype9 >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23; +var8 = var_tidnode3->type->type_table[cltype9] == idtype10; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5595); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6728); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist8; -/* isa nullable AExternCodeBlock */ -cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var24 = 1; +var11 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on */; +} +var_listnode5 = var11; +var12 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var12; +var_passignopnode6 = var_nodearraylist5; +/* isa nullable AAssignOp */ +cltype14 = type_nullable_parser_nodes__AAssignOp.color; +idtype15 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var13 = 1; } else { -if(cltype25 >= var_pexterncodeblocknode9->type->table_size) { -var24 = 0; +if(cltype14 >= var_passignopnode6->type->table_size) { +var13 = 0; } else { -var24 = var_pexterncodeblocknode9->type->type_table[cltype25] == idtype26; +var13 = var_passignopnode6->type->type_table[cltype14] == idtype15; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5597); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6734); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype28 = type_nullable_parser_nodes__TKwend.color; -idtype29 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var27 = 1; +var_pexprnode7 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var16 = 1; } else { -if(cltype28 >= var_tkwendnode12->type->table_size) { -var27 = 0; +if(cltype17 >= var_pexprnode7->type->table_size) { +var16 = 0; } else { -var27 = var_tkwendnode12->type->type_table[cltype28] == idtype29; +var16 = var_pexprnode7->type->type_table[cltype17] == idtype18; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5599); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6736); +show_backtrace(1); +} +var19 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +} +var_pexprnode1 = var19; +var_node_list = var_pexprnode1; +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 */ } -var30 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var31 = NULL; -var32 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var30, var_pdocnode2, var31, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var32, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var30); -var_pclassdefnode1 = var30; -var_node_list = var_pclassdefnode1; -var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* 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); +/* method parser#ReduceAction231#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction231__action(val* self, val* p0) { +parser__ReduceAction231__action(self, p0); /* Direct call parser#ReduceAction231#action on */ RET_LABEL:; } -/* method parser#ReduceAction110#action for (self: ReduceAction110, Parser) */ -void parser__ReduceAction110__action(val* self, val* p0) { +/* method parser#ReduceAction232#action for (self: ReduceAction232, Parser) */ +void parser__ReduceAction232__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* var2 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -val* var33 /* : AStdClassdef */; -val* var34 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var35 /* : Int */; -long var36 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var22 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode10 = 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_listnode11 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5636); -exit(1); +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; -} else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5638); -exit(1); +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var8; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var9 = 1; } else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; } else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var9 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5640); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6762); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype11 = type_nullable_parser_nodes__TId.color; +idtype12 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var10 = 1; } else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; +if(cltype11 >= var_tidnode3->type->table_size) { +var10 = 0; } else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5642); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6764); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype14 = type_nullable_parser_nodes__AExprs.color; +idtype15 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var13 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype14 >= var_pexprsnode4->type->table_size) { +var13 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5644); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6766); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist8; -/* isa nullable AExternCodeBlock */ -cltype28 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype29 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var27 = 1; +var_passignopnode5 = var_nodearraylist7; +/* isa nullable AAssignOp */ +cltype17 = type_nullable_parser_nodes__AAssignOp.color; +idtype18 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var16 = 1; } else { -if(cltype28 >= var_pexterncodeblocknode9->type->table_size) { -var27 = 0; +if(cltype17 >= var_passignopnode5->type->table_size) { +var16 = 0; } else { -var27 = var_pexterncodeblocknode9->type->type_table[cltype28] == idtype29; +var16 = var_passignopnode5->type->type_table[cltype17] == idtype18; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5646); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6768); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype31 = type_nullable_parser_nodes__TKwend.color; -idtype32 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var30 = 1; +var_pexprnode6 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype20 = type_nullable_parser_nodes__AExpr.color; +idtype21 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var19 = 1; } else { -if(cltype31 >= var_tkwendnode12->type->table_size) { -var30 = 0; +if(cltype20 >= var_pexprnode6->type->table_size) { +var19 = 0; } else { -var30 = var_tkwendnode12->type->type_table[cltype31] == idtype32; +var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6770); +show_backtrace(1); +} +var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var22; +var_node_list = var_pexprnode1; +var23 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var24 = parser_work__Parser__go_to(var_p, var23); } -if (!var30) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5648); -exit(1); +{ +parser_work__Parser__push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ } -var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var34 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var34, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var33); -var_pclassdefnode1 = var33; -var_node_list = var_pclassdefnode1; -var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* 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); +/* method parser#ReduceAction232#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction232__action(val* self, val* p0) { +parser__ReduceAction232__action(self, p0); /* Direct call parser#ReduceAction232#action on */ RET_LABEL:; } -/* method parser#ReduceAction111#action for (self: ReduceAction111, Parser) */ -void parser__ReduceAction111__action(val* self, val* p0) { +/* method parser#ReduceAction233#action for (self: ReduceAction233, Parser) */ +void parser__ReduceAction233__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode10 /* var listnode10: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var_pexterncodeblocknode9 /* var pexterncodeblocknode9: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var_tkwendnode12 /* var tkwendnode12: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var34 /* : AStdClassdef */; -val* var35 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var36 /* : Int */; -long var37 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var13 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode7 = 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_listnode10 = 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_listnode11 = var14; -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) { -var15 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; -} else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist7 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5686); -exit(1); +var_nodearraylist6 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype17 = type_nullable_parser_nodes__TKwredef.color; -idtype18 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_tkwredefnode3->type->table_size) { -var16 = 0; -} else { -var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18; +var_nodearraylist5 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist4 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5688); -exit(1); +var_nodearraylist3 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype20 = type_nullable_parser_nodes__AVisibility.color; -idtype21 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var19 = 1; +var_nodearraylist2 = var6; +{ +var7 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype20 >= var_pvisibilitynode4->type->table_size) { -var19 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5690); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6795); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype23 = type_nullable_parser_nodes__AClasskind.color; -idtype24 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var22 = 1; +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype23 >= var_pclasskindnode5->type->table_size) { -var22 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5692); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6797); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype26 = type_nullable_parser_nodes__TClassid.color; -idtype27 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var25 = 1; +var12 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var12->class->vft[COLOR_kernel__Object__init]))(var12) /* init on */; +} +var_listnode5 = var12; +var13 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var13; +var_passignopnode6 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype15 = type_nullable_parser_nodes__AAssignOp.color; +idtype16 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var14 = 1; } else { -if(cltype26 >= var_tclassidnode6->type->table_size) { -var25 = 0; +if(cltype15 >= var_passignopnode6->type->table_size) { +var14 = 0; } else { -var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27; +var14 = var_passignopnode6->type->type_table[cltype15] == idtype16; } } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5694); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6803); +show_backtrace(1); } -var_pexterncodeblocknode9 = var_nodearraylist9; -/* isa nullable AExternCodeBlock */ -cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode9 == NULL) { -var28 = 1; +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable_parser_nodes__AExpr.color; +idtype19 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var17 = 1; } else { -if(cltype29 >= var_pexterncodeblocknode9->type->table_size) { -var28 = 0; +if(cltype18 >= var_pexprnode7->type->table_size) { +var17 = 0; } else { -var28 = var_pexterncodeblocknode9->type->type_table[cltype29] == idtype30; +var17 = var_pexprnode7->type->type_table[cltype18] == idtype19; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5696); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6805); +show_backtrace(1); } -var_tkwendnode12 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype32 = type_nullable_parser_nodes__TKwend.color; -idtype33 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode12 == NULL) { -var31 = 1; -} else { -if(cltype32 >= var_tkwendnode12->type->table_size) { -var31 = 0; -} else { -var31 = var_tkwendnode12->type->type_table[cltype32] == idtype33; +var20 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var20; +var_node_list = var_pexprnode1; +var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var22 = parser_work__Parser__go_to(var_p, var21); } -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5698); -exit(1); +{ +parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } -var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var35, var_pexterncodeblocknode9, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var34); -var_pclassdefnode1 = var34; -var_node_list = var_pclassdefnode1; -var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var37 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var36) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var37, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction111#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction111__action(val* self, val* p0) { -parser__ReduceAction111__action(self, p0); +/* method parser#ReduceAction233#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction233__action(val* self, val* p0) { +parser__ReduceAction233__action(self, p0); /* Direct call parser#ReduceAction233#action on */ RET_LABEL:; } -/* method parser#ReduceAction113#action for (self: ReduceAction113, Parser) */ -void parser__ReduceAction113__action(val* self, val* p0) { +/* method parser#ReduceAction234#action for (self: ReduceAction234, Parser) */ +void parser__ReduceAction234__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -7879,2068 +8274,1650 @@ val* var8 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var17 /* : Bool */; int cltype18; int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var20 /* : Bool */; int cltype21; int idtype22; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -val* var33 /* : AStdClassdef */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var36 /* : Int */; -long var37 /* : Int */; +val* var23 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var24 /* : Int */; +long var25 /* : 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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var2 = parser_work__Parser__pop(var_p); +} var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var3 = parser_work__Parser__pop(var_p); +} var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var4 = parser_work__Parser__pop(var_p); +} var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var5 = parser_work__Parser__pop(var_p); +} var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var6 = parser_work__Parser__pop(var_p); +} var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var7 = parser_work__Parser__pop(var_p); +} var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var8 = parser_work__Parser__pop(var_p); +} var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +{ +var9 = parser_work__Parser__pop(var_p); +} var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode8 = var10; -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_listnode11 = 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_listnode12 = var12; -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) { -var13 = 1; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var10 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var10 = 0; +} else { +var10 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6832); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype12 = type_nullable_parser_nodes__TId.color; +idtype13 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_tidnode3->type->table_size) { +var11 = 0; } else { -var13 = var_pdocnode2->type->type_table[cltype] == idtype; +var11 = var_tidnode3->type->type_table[cltype12] == idtype13; } } -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5734); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6834); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype15 = type_nullable_parser_nodes__AVisibility.color; -idtype16 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype15 = type_nullable_parser_nodes__AExprs.color; +idtype16 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { var14 = 1; } else { -if(cltype15 >= var_pvisibilitynode4->type->table_size) { +if(cltype15 >= var_pexprsnode4->type->table_size) { var14 = 0; } else { -var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5736); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6836); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { +var_passignopnode5 = var_nodearraylist8; +/* isa nullable AAssignOp */ +cltype18 = type_nullable_parser_nodes__AAssignOp.color; +idtype19 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { var17 = 1; } else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { +if(cltype18 >= var_passignopnode5->type->table_size) { var17 = 0; } else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var17 = var_passignopnode5->type->type_table[cltype18] == idtype19; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5738); -exit(1); +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6838); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { +var_pexprnode6 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype21 = type_nullable_parser_nodes__AExpr.color; +idtype22 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { var20 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { +if(cltype21 >= var_pexprnode6->type->table_size) { var20 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; -} -} -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5740); -exit(1); -} -var_listnode7 = var_nodearraylist6; -/* isa Array[Object] */ -cltype24 = type_array__Arraykernel__Object.color; -idtype25 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var23 = 0; -} else { -if(cltype24 >= var_listnode7->type->table_size) { -var23 = 0; -} else { -var23 = var_listnode7->type->type_table[cltype24] == idtype25; -} -} -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5742); -exit(1); -} -var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var26; -var_pexterncodeblocknode10 = var_nodearraylist7; -/* isa nullable AExternCodeBlock */ -cltype28 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype29 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var27 = 1; -} else { -if(cltype28 >= var_pexterncodeblocknode10->type->table_size) { -var27 = 0; -} else { -var27 = var_pexterncodeblocknode10->type->type_table[cltype28] == idtype29; +var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5745); -exit(1); +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6840); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype31 = type_nullable_parser_nodes__TKwend.color; -idtype32 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var30 = 1; -} else { -if(cltype31 >= var_tkwendnode13->type->table_size) { -var30 = 0; -} else { -var30 = var_tkwendnode13->type->type_table[cltype31] == idtype32; +var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var23; +var_node_list = var_pexprnode1; +var24 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var25 = parser_work__Parser__go_to(var_p, var24); } -if (!var30) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5747); -exit(1); +{ +parser_work__Parser__push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on */ } -var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var34 = NULL; -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var33, var_pdocnode2, var34, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var35, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var33); -var_pclassdefnode1 = var33; -var_node_list = var_pclassdefnode1; -var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var37 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var36) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var37, var_node_list) /* 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); +/* method parser#ReduceAction234#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction234__action(val* self, val* p0) { +parser__ReduceAction234__action(self, p0); /* Direct call parser#ReduceAction234#action on */ RET_LABEL:; } -/* method parser#ReduceAction114#action for (self: ReduceAction114, Parser) */ -void parser__ReduceAction114__action(val* self, val* p0) { +/* method parser#ReduceAction235#action for (self: ReduceAction235, Parser) */ +void parser__ReduceAction235__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* var2 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var8 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var14 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -val* var37 /* : AStdClassdef */; -val* var38 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var39 /* : Int */; -long var40 /* : Int */; +val* var21 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode11 = 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_listnode12 = var13; -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) { -var14 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; -} else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; -} +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5784); -exit(1); +var_nodearraylist8 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; -} else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +var_nodearraylist7 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } +var_nodearraylist6 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5786); -exit(1); +var_nodearraylist5 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; -} else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +var_nodearraylist4 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var6; +{ +var7 = parser_work__Parser__pop(var_p); } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5788); -exit(1); +var_nodearraylist2 = var7; +{ +var8 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; +var_nodearraylist1 = var8; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var9 = 1; } else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; } else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +var9 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5790); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6866); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype11 = type_nullable_parser_nodes__TId.color; +idtype12 = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var10 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype11 >= var_tidnode3->type->table_size) { +var10 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5792); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6868); +show_backtrace(1); } -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype28 = type_array__Arraykernel__Object.color; -idtype29 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var27 = 0; +var13 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var13->class->vft[COLOR_kernel__Object__init]))(var13) /* init on */; +} +var_listnode5 = var13; +var14 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var14, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var14; +var_passignopnode6 = var_nodearraylist7; +/* isa nullable AAssignOp */ +cltype16 = type_nullable_parser_nodes__AAssignOp.color; +idtype17 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var15 = 1; } else { -if(cltype28 >= var_listnode7->type->table_size) { -var27 = 0; +if(cltype16 >= var_passignopnode6->type->table_size) { +var15 = 0; } else { -var27 = var_listnode7->type->type_table[cltype28] == idtype29; +var15 = var_passignopnode6->type->type_table[cltype16] == idtype17; } } -if (!var27) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5794); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6874); +show_backtrace(1); } -var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var30; -var_pexterncodeblocknode10 = var_nodearraylist8; -/* isa nullable AExternCodeBlock */ -cltype32 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype33 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var31 = 1; +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var18 = 1; } else { -if(cltype32 >= var_pexterncodeblocknode10->type->table_size) { -var31 = 0; +if(cltype19 >= var_pexprnode7->type->table_size) { +var18 = 0; } else { -var31 = var_pexterncodeblocknode10->type->type_table[cltype32] == idtype33; +var18 = var_pexprnode7->type->type_table[cltype19] == idtype20; } } -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5797); -exit(1); +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6876); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype35 = type_nullable_parser_nodes__TKwend.color; -idtype36 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var34 = 1; -} else { -if(cltype35 >= var_tkwendnode13->type->table_size) { -var34 = 0; -} else { -var34 = var_tkwendnode13->type->type_table[cltype35] == idtype36; +var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var21; +var_node_list = var_pexprnode1; +var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var23 = parser_work__Parser__go_to(var_p, var22); } -if (!var34) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5799); -exit(1); +{ +parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } -var37 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var38 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var38, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var37); -var_pclassdefnode1 = var37; -var_node_list = var_pclassdefnode1; -var39 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var40 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var39) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var40, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction114#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction114__action(val* self, val* p0) { -parser__ReduceAction114__action(self, p0); +/* method parser#ReduceAction235#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction235__action(val* self, val* p0) { +parser__ReduceAction235__action(self, p0); /* Direct call parser#ReduceAction235#action on */ RET_LABEL:; } -/* method parser#ReduceAction115#action for (self: ReduceAction115, Parser) */ -void parser__ReduceAction115__action(val* self, val* p0) { +/* method parser#ReduceAction238#action for (self: ReduceAction238, Parser) */ +void parser__ReduceAction238__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var11 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var34 /* : AStdClassdef */; -val* var35 /* : null */; -val* var36 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var37 /* : Int */; -long var38 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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; -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_listnode11 = 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_listnode12 = var13; -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) { -var14 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; } else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; +var7 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5836); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6899); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype16 = type_nullable_parser_nodes__AVisibility.color; -idtype17 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var15 = 1; +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype9 = type_nullable_parser_nodes__AExprs.color; +idtype10 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var8 = 1; } else { -if(cltype16 >= var_pvisibilitynode4->type->table_size) { -var15 = 0; +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; } else { -var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17; +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5838); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6901); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype19 = type_nullable_parser_nodes__AClasskind.color; -idtype20 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var18 = 1; +var_passignopnode5 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype12 = type_nullable_parser_nodes__AAssignOp.color; +idtype13 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var11 = 1; } else { -if(cltype19 >= var_pclasskindnode5->type->table_size) { -var18 = 0; +if(cltype12 >= var_passignopnode5->type->table_size) { +var11 = 0; } else { -var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20; +var11 = var_passignopnode5->type->type_table[cltype12] == idtype13; } } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5840); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6903); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype22 = type_nullable_parser_nodes__TClassid.color; -idtype23 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var21 = 1; +var_pexprnode6 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var14 = 1; } else { -if(cltype22 >= var_tclassidnode6->type->table_size) { -var21 = 0; +if(cltype15 >= var_pexprnode6->type->table_size) { +var14 = 0; } else { -var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23; +var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; } } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5842); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6905); +show_backtrace(1); } -var_listnode7 = var_nodearraylist7; -/* isa Array[Object] */ -cltype25 = type_array__Arraykernel__Object.color; -idtype26 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var24 = 0; -} else { -if(cltype25 >= var_listnode7->type->table_size) { -var24 = 0; -} else { -var24 = var_listnode7->type->type_table[cltype25] == idtype26; +var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +} +var_pexprnode1 = var17; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); } +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5844); -exit(1); +/* method parser#ReduceAction238#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction238__action(val* self, val* p0) { +parser__ReduceAction238__action(self, p0); /* Direct call parser#ReduceAction238#action on */ +RET_LABEL:; } -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var27; -var_pexterncodeblocknode10 = var_nodearraylist8; -/* isa nullable AExternCodeBlock */ -cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var28 = 1; +/* method parser#ReduceAction239#action for (self: ReduceAction239, Parser) */ +void parser__ReduceAction239__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var7 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var8 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var16 /* : Int */; +long var17 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ +RET_LABEL5:(void)0; +} +} +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var6 = 1; +} else { +if(cltype >= var_tidnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_tidnode3->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6927); +show_backtrace(1); +} +var7 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on */; +} +var_listnode5 = var7; +var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var8; +var_passignopnode6 = var_nodearraylist2; +/* isa nullable AAssignOp */ +cltype10 = type_nullable_parser_nodes__AAssignOp.color; +idtype11 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var9 = 1; } else { -if(cltype29 >= var_pexterncodeblocknode10->type->table_size) { -var28 = 0; +if(cltype10 >= var_passignopnode6->type->table_size) { +var9 = 0; } else { -var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30; +var9 = var_passignopnode6->type->type_table[cltype10] == idtype11; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5847); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6933); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype32 = type_nullable_parser_nodes__TKwend.color; -idtype33 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var31 = 1; +var_pexprnode7 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype13 = type_nullable_parser_nodes__AExpr.color; +idtype14 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var12 = 1; } else { -if(cltype32 >= var_tkwendnode13->type->table_size) { -var31 = 0; +if(cltype13 >= var_pexprnode7->type->table_size) { +var12 = 0; } else { -var31 = var_tkwendnode13->type->type_table[cltype32] == idtype33; +var12 = var_pexprnode7->type->type_table[cltype13] == idtype14; +} } +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6935); +show_backtrace(1); } -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5849); -exit(1); +var15 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +} +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); +} +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } -var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var35 = NULL; -var36 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var35, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var36, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var34); -var_pclassdefnode1 = var34; -var_node_list = var_pclassdefnode1; -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#ReduceAction115#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction115__action(val* self, val* p0) { -parser__ReduceAction115__action(self, p0); +/* method parser#ReduceAction239#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction239__action(val* self, val* p0) { +parser__ReduceAction239__action(self, p0); /* Direct call parser#ReduceAction239#action on */ RET_LABEL:; } -/* method parser#ReduceAction116#action for (self: ReduceAction116, Parser) */ -void parser__ReduceAction116__action(val* self, val* p0) { +/* method parser#ReduceAction240#action for (self: ReduceAction240, Parser) */ +void parser__ReduceAction240__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var6 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var35 /* : AStdClassdef */; -val* var36 /* : null */; -val* var37 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var38 /* : Int */; -long var39 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var18 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode11 = 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_listnode12 = var14; -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) { -var15 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ +RET_LABEL7:(void)0; +} +} +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; +var8 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5887); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6959); +show_backtrace(1); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype17 = type_nullable_parser_nodes__AVisibility.color; -idtype18 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var16 = 1; +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype10 = type_nullable_parser_nodes__AExprs.color; +idtype11 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var9 = 1; } else { -if(cltype17 >= var_pvisibilitynode4->type->table_size) { -var16 = 0; +if(cltype10 >= var_pexprsnode4->type->table_size) { +var9 = 0; } else { -var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18; +var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5889); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6961); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype20 = type_nullable_parser_nodes__AClasskind.color; -idtype21 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var19 = 1; +var_passignopnode5 = var_nodearraylist4; +/* isa nullable AAssignOp */ +cltype13 = type_nullable_parser_nodes__AAssignOp.color; +idtype14 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var12 = 1; } else { -if(cltype20 >= var_pclasskindnode5->type->table_size) { -var19 = 0; +if(cltype13 >= var_passignopnode5->type->table_size) { +var12 = 0; } else { -var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21; +var12 = var_passignopnode5->type->type_table[cltype13] == idtype14; } } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5891); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6963); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype23 = type_nullable_parser_nodes__TClassid.color; -idtype24 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var22 = 1; +var_pexprnode6 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype16 = type_nullable_parser_nodes__AExpr.color; +idtype17 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var15 = 1; } else { -if(cltype23 >= var_tclassidnode6->type->table_size) { -var22 = 0; +if(cltype16 >= var_pexprnode6->type->table_size) { +var15 = 0; } else { -var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24; +var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5893); -exit(1); +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6965); +show_backtrace(1); } -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype26 = type_array__Arraykernel__Object.color; -idtype27 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var25 = 0; -} else { -if(cltype26 >= var_listnode7->type->table_size) { -var25 = 0; -} else { -var25 = var_listnode7->type->type_table[cltype26] == idtype27; +var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +} +var_pexprnode1 = var18; +var_node_list = var_pexprnode1; +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 */ +} +RET_LABEL:; } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5895); -exit(1); +/* method parser#ReduceAction240#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction240__action(val* self, val* p0) { +parser__ReduceAction240__action(self, p0); /* Direct call parser#ReduceAction240#action on */ +RET_LABEL:; } -var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var28; -var_pexterncodeblocknode10 = var_nodearraylist9; -/* isa nullable AExternCodeBlock */ -cltype30 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype31 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var29 = 1; +/* method parser#ReduceAction241#action for (self: ReduceAction241, Parser) */ +void parser__ReduceAction241__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 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype; +int idtype; +val* var8 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var9 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var17 /* : Int */; +long var18 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ +RET_LABEL6:(void)0; +} +} +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; } else { -if(cltype30 >= var_pexterncodeblocknode10->type->table_size) { -var29 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; } else { -var29 = var_pexterncodeblocknode10->type->type_table[cltype30] == idtype31; +var7 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5898); -exit(1); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6988); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype33 = type_nullable_parser_nodes__TKwend.color; -idtype34 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var32 = 1; +var8 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on */; +} +var_listnode5 = var8; +var9 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var9; +var_passignopnode6 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype11 = type_nullable_parser_nodes__AAssignOp.color; +idtype12 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_passignopnode6->type->table_size) { +var10 = 0; +} else { +var10 = var_passignopnode6->type->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6994); +show_backtrace(1); +} +var_pexprnode7 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype14 = type_nullable_parser_nodes__AExpr.color; +idtype15 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var13 = 1; } else { -if(cltype33 >= var_tkwendnode13->type->table_size) { -var32 = 0; +if(cltype14 >= var_pexprnode7->type->table_size) { +var13 = 0; } else { -var32 = var_tkwendnode13->type->type_table[cltype33] == idtype34; +var13 = var_pexprnode7->type->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 6996); +show_backtrace(1); +} +var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var16; +var_node_list = var_pexprnode1; +var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var18 = parser_work__Parser__go_to(var_p, var17); } -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5900); -exit(1); +{ +parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var36 = NULL; -var37 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var36, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var37, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var35); -var_pclassdefnode1 = var35; -var_node_list = var_pclassdefnode1; -var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var39 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var38) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var39, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction116#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction116__action(val* self, val* p0) { -parser__ReduceAction116__action(self, p0); +/* method parser#ReduceAction241#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction241__action(val* self, val* p0) { +parser__ReduceAction241__action(self, p0); /* Direct call parser#ReduceAction241#action on */ RET_LABEL:; } -/* method parser#ReduceAction118#action for (self: ReduceAction118, Parser) */ -void parser__ReduceAction118__action(val* self, val* p0) { +/* method parser#ReduceAction242#action for (self: ReduceAction242, Parser) */ +void parser__ReduceAction242__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var15 /* : Bool */; +val* var7 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var35 /* : Bool */; -int cltype36; -int idtype37; -val* var38 /* : AStdClassdef */; -val* var39 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var40 /* : Int */; -long var41 /* : Int */; +val* var19 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist11 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode11 = 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_listnode12 = var14; -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) { -var15 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var15 = 0; -} else { -var15 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5938); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype17 = type_nullable_parser_nodes__TKwredef.color; -idtype18 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_tkwredefnode3->type->table_size) { -var16 = 0; -} else { -var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist6 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5940); -exit(1); +var_nodearraylist5 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype20 = type_nullable_parser_nodes__AVisibility.color; -idtype21 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var19 = 1; -} else { -if(cltype20 >= var_pvisibilitynode4->type->table_size) { -var19 = 0; -} else { -var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21; +var_nodearraylist4 = var3; +{ +var4 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var4; +{ +var5 = parser_work__Parser__pop(var_p); } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5942); -exit(1); +var_nodearraylist2 = var5; +{ +var6 = parser_work__Parser__pop(var_p); } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype23 = type_nullable_parser_nodes__AClasskind.color; -idtype24 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var22 = 1; +var_nodearraylist1 = var6; +var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var7) on */ +RET_LABEL8:(void)0; +} +} +var_pexprnode2 = var7; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; } else { -if(cltype23 >= var_pclasskindnode5->type->table_size) { -var22 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24; +var9 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5944); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7021); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist7; -/* isa nullable TClassid */ -cltype26 = type_nullable_parser_nodes__TClassid.color; -idtype27 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var25 = 1; +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype11 = type_nullable_parser_nodes__AExprs.color; +idtype12 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode4 == NULL) { +var10 = 1; } else { -if(cltype26 >= var_tclassidnode6->type->table_size) { -var25 = 0; +if(cltype11 >= var_pexprsnode4->type->table_size) { +var10 = 0; } else { -var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27; +var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; } } -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5946); -exit(1); +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7023); +show_backtrace(1); } -var_listnode7 = var_nodearraylist8; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var28 = 0; +var_passignopnode5 = var_nodearraylist5; +/* isa nullable AAssignOp */ +cltype14 = type_nullable_parser_nodes__AAssignOp.color; +idtype15 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var13 = 1; } else { -if(cltype29 >= var_listnode7->type->table_size) { -var28 = 0; +if(cltype14 >= var_passignopnode5->type->table_size) { +var13 = 0; } else { -var28 = var_listnode7->type->type_table[cltype29] == idtype30; +var13 = var_passignopnode5->type->type_table[cltype14] == idtype15; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5948); -exit(1); +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7025); +show_backtrace(1); } -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var31; -var_pexterncodeblocknode10 = var_nodearraylist9; -/* isa nullable AExternCodeBlock */ -cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var32 = 1; +var_pexprnode6 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode6 == NULL) { +var16 = 1; } else { -if(cltype33 >= var_pexterncodeblocknode10->type->table_size) { -var32 = 0; +if(cltype17 >= var_pexprnode6->type->table_size) { +var16 = 0; } else { -var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34; +var16 = var_pexprnode6->type->type_table[cltype17] == idtype18; } } -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5951); -exit(1); +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7027); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist11; -/* isa nullable TKwend */ -cltype36 = type_nullable_parser_nodes__TKwend.color; -idtype37 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var35 = 1; -} else { -if(cltype36 >= var_tkwendnode13->type->table_size) { -var35 = 0; -} else { -var35 = var_tkwendnode13->type->type_table[cltype36] == idtype37; +var19 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var19; +var_node_list = var_pexprnode1; +var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var21 = parser_work__Parser__go_to(var_p, var20); } -if (!var35) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5953); -exit(1); +{ +parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } -var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var39 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var39, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var38); -var_pclassdefnode1 = var38; -var_node_list = var_pclassdefnode1; -var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var41 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var40) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var41, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction118#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction118__action(val* self, val* p0) { -parser__ReduceAction118__action(self, p0); +/* method parser#ReduceAction242#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction242__action(val* self, val* p0) { +parser__ReduceAction242__action(self, p0); /* Direct call parser#ReduceAction242#action on */ RET_LABEL:; } -/* method parser#ReduceAction119#action for (self: ReduceAction119, Parser) */ -void parser__ReduceAction119__action(val* self, val* p0) { +/* method parser#ReduceAction243#action for (self: ReduceAction243, Parser) */ +void parser__ReduceAction243__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_nodearraylist12 /* var nodearraylist12: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var8 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var9 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var10 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var11 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var12 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var13 /* : Array[Object] */; -val* var_listnode8 /* var listnode8: Array[Object] */; -val* var14 /* : Array[Object] */; -val* var_listnode11 /* var listnode11: Array[Object] */; -val* var15 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var16 /* : Bool */; +val* var6 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var_listnode7 /* var listnode7: nullable Object */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -val* var32 /* : Array[Object] */; -val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -val* var_tkwendnode13 /* var tkwendnode13: nullable Object */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -val* var39 /* : AStdClassdef */; -val* var40 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var41 /* : Int */; -long var42 /* : Int */; +val* var9 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var10 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +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_nodearraylist12 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist11 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var11; -var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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; -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_listnode11 = var14; -var15 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on */; -CHECK_NEW_array__Array(var15); -var_listnode12 = var15; -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) { -var16 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var16 = 0; -} else { -var16 = var_pdocnode2->type->type_table[cltype] == idtype; -} -} -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5992); -exit(1); -} -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype18 = type_nullable_parser_nodes__TKwredef.color; -idtype19 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_tkwredefnode3->type->table_size) { -var17 = 0; -} else { -var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19; -} -} -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5994); -exit(1); -} -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype21 = type_nullable_parser_nodes__AVisibility.color; -idtype22 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var20 = 1; -} else { -if(cltype21 >= var_pvisibilitynode4->type->table_size) { -var20 = 0; -} else { -var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22; -} -} -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5996); -exit(1); -} -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype24 = type_nullable_parser_nodes__AClasskind.color; -idtype25 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var23 = 1; -} else { -if(cltype24 >= var_pclasskindnode5->type->table_size) { -var23 = 0; -} else { -var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25; -} -} -if (!var23) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 5998); -exit(1); -} -var_tclassidnode6 = var_nodearraylist8; -/* isa nullable TClassid */ -cltype27 = type_nullable_parser_nodes__TClassid.color; -idtype28 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var26 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist5 = var1; +{ +var2 = parser_work__Parser__pop(var_p); +} +var_nodearraylist4 = var2; +{ +var3 = parser_work__Parser__pop(var_p); +} +var_nodearraylist3 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +{ +{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ +RET_LABEL7:(void)0; +} +} +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype27 >= var_tclassidnode6->type->table_size) { -var26 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28; +var8 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var26) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6000); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7051); +show_backtrace(1); } -var_listnode7 = var_nodearraylist9; -/* isa Array[Object] */ -cltype30 = type_array__Arraykernel__Object.color; -idtype31 = type_array__Arraykernel__Object.id; -if(var_listnode7 == NULL) { -var29 = 0; +var9 = NEW_array__Array(&type_array__Arraykernel__Object); +{ +((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on */; +} +var_listnode5 = var9; +var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs); +{ +parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var10; +var_passignopnode6 = var_nodearraylist4; +/* isa nullable AAssignOp */ +cltype12 = type_nullable_parser_nodes__AAssignOp.color; +idtype13 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var11 = 1; } else { -if(cltype30 >= var_listnode7->type->table_size) { -var29 = 0; +if(cltype12 >= var_passignopnode6->type->table_size) { +var11 = 0; } else { -var29 = var_listnode7->type->type_table[cltype30] == idtype31; +var11 = var_passignopnode6->type->type_table[cltype12] == idtype13; } } -if (!var29) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6002); -exit(1); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7057); +show_backtrace(1); } -var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on */; -var_listnode8 = var32; -var_pexterncodeblocknode10 = var_nodearraylist10; -/* isa nullable AExternCodeBlock */ -cltype34 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype35 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode10 == NULL) { -var33 = 1; +var_pexprnode7 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var14 = 1; } else { -if(cltype34 >= var_pexterncodeblocknode10->type->table_size) { -var33 = 0; +if(cltype15 >= var_pexprnode7->type->table_size) { +var14 = 0; } else { -var33 = var_pexterncodeblocknode10->type->type_table[cltype34] == idtype35; +var14 = var_pexprnode7->type->type_table[cltype15] == idtype16; } } -if (!var33) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6005); -exit(1); +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7059); +show_backtrace(1); } -var_tkwendnode13 = var_nodearraylist12; -/* isa nullable TKwend */ -cltype37 = type_nullable_parser_nodes__TKwend.color; -idtype38 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode13 == NULL) { -var36 = 1; -} else { -if(cltype37 >= var_tkwendnode13->type->table_size) { -var36 = 0; -} else { -var36 = var_tkwendnode13->type->type_table[cltype37] == idtype38; +var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +{ +parser_prod__ACallReassignExpr__init_acallreassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } +var_pexprnode1 = var17; +var_node_list = var_pexprnode1; +var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var19 = parser_work__Parser__go_to(var_p, var18); } -if (!var36) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6007); -exit(1); +{ +parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } -var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var40 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var40, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var39); -var_pclassdefnode1 = var39; -var_node_list = var_pclassdefnode1; -var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var42 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var41) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var42, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction119#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction119__action(val* self, val* p0) { -parser__ReduceAction119__action(self, p0); +/* method parser#ReduceAction243#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction243__action(val* self, val* p0) { +parser__ReduceAction243__action(self, p0); /* Direct call parser#ReduceAction243#action on */ RET_LABEL:; } -/* method parser#ReduceAction121#action for (self: ReduceAction121, Parser) */ -void parser__ReduceAction121__action(val* self, val* p0) { +/* method parser#ReduceAction246#action for (self: ReduceAction246, Parser) */ +void parser__ReduceAction246__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var10 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var11 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var13 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var23 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var28 /* : AAnnotations */; -val* var29 /* : null */; -val* var30 /* : null */; -val* var31 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var35 /* : Bool */; -int cltype36; -int idtype37; -val* var38 /* : AStdClassdef */; -val* var39 /* : null */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var40 /* : Int */; -long var41 /* : Int */; +val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ABraReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */; +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_nodearraylist9 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var9; -var10 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on */; -CHECK_NEW_array__Array(var10); -var_listnode7 = var10; -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_listnode15 = 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_listnode16 = var12; -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) { -var13 = 1; -} else { -if(cltype >= var_pdocnode2->type->table_size) { -var13 = 0; -} else { -var13 = 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 (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6043); -exit(1); +var_nodearraylist3 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_pvisibilitynode4 = var_nodearraylist2; -/* isa nullable AVisibility */ -cltype15 = type_nullable_parser_nodes__AVisibility.color; -idtype16 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var14 = 1; +var_nodearraylist2 = var3; +{ +var4 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var4; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable_parser_nodes__AExpr.color; +idtype = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode2 == NULL) { +var5 = 1; } else { -if(cltype15 >= var_pvisibilitynode4->type->table_size) { -var14 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6045); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7081); +show_backtrace(1); } -var_pclasskindnode5 = var_nodearraylist3; -/* isa nullable AClasskind */ -cltype18 = type_nullable_parser_nodes__AClasskind.color; -idtype19 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var17 = 1; +var_pexprsnode3 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype7 = type_nullable_parser_nodes__AExprs.color; +idtype8 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode3 == NULL) { +var6 = 1; } else { -if(cltype18 >= var_pclasskindnode5->type->table_size) { -var17 = 0; +if(cltype7 >= var_pexprsnode3->type->table_size) { +var6 = 0; } else { -var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19; +var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; } } -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6047); -exit(1); +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7083); +show_backtrace(1); } -var_tclassidnode6 = var_nodearraylist5; -/* isa nullable TClassid */ -cltype21 = type_nullable_parser_nodes__TClassid.color; -idtype22 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var20 = 1; +var_passignopnode4 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype10 = type_nullable_parser_nodes__AAssignOp.color; +idtype11 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var9 = 1; } else { -if(cltype21 >= var_tclassidnode6->type->table_size) { -var20 = 0; +if(cltype10 >= var_passignopnode4->type->table_size) { +var9 = 0; } else { -var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22; +var9 = var_passignopnode4->type->type_table[cltype10] == idtype11; } } -if (!var20) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6049); -exit(1); +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7085); +show_backtrace(1); } -var23 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var23->class->vft[COLOR_array__Array__init]))(var23) /* init on */; -CHECK_NEW_array__Array(var23); -var_listnode12 = var23; -var_listnode11 = var_nodearraylist6; -/* isa Array[Object] */ -cltype25 = type_array__Arraykernel__Object.color; -idtype26 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var24 = 0; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype13 = type_nullable_parser_nodes__AExpr.color; +idtype14 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var12 = 1; } else { -if(cltype25 >= var_listnode11->type->table_size) { -var24 = 0; +if(cltype13 >= var_pexprnode5->type->table_size) { +var12 = 0; } else { -var24 = var_listnode11->type->type_table[cltype25] == idtype26; +var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6052); -exit(1); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7087); +show_backtrace(1); } -var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var27; -var28 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var29 = NULL; -var30 = NULL; -var31 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var28, var29, var30, var_listnode12, var31) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var28); -var_pannotationsnode8 = var28; -var_pexterncodeblocknode14 = var_nodearraylist7; -/* isa nullable AExternCodeBlock */ -cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode14 == NULL) { -var32 = 1; -} else { -if(cltype33 >= var_pexterncodeblocknode14->type->table_size) { -var32 = 0; -} else { -var32 = var_pexterncodeblocknode14->type->type_table[cltype33] == idtype34; +var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr); +{ +parser_prod__ABraReassignExpr__init_abrareassignexpr(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#ABraReassignExpr#init_abrareassignexpr on */ +} +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var17 = parser_work__Parser__go_to(var_p, var16); +} +{ +parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; } +/* method parser#ReduceAction246#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction246__action(val* self, val* p0) { +parser__ReduceAction246__action(self, p0); /* Direct call parser#ReduceAction246#action on */ +RET_LABEL:; } -if (!var32) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6061); -exit(1); +/* method parser#ReduceAction247#action for (self: ReduceAction247, Parser) */ +void parser__ReduceAction247__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_tpluseqnode2 /* var tpluseqnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var3 /* : APlusAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */; +long var4 /* : Int */; +long var5 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } -var_tkwendnode17 = var_nodearraylist9; -/* isa nullable TKwend */ -cltype36 = type_nullable_parser_nodes__TKwend.color; -idtype37 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var35 = 1; +var_nodearraylist1 = var1; +var_tpluseqnode2 = var_nodearraylist1; +/* isa nullable TPluseq */ +cltype = type_nullable_parser_nodes__TPluseq.color; +idtype = type_nullable_parser_nodes__TPluseq.id; +if(var_tpluseqnode2 == NULL) { +var2 = 1; } else { -if(cltype36 >= var_tkwendnode17->type->table_size) { -var35 = 0; +if(cltype >= var_tpluseqnode2->type->table_size) { +var2 = 0; } else { -var35 = var_tkwendnode17->type->type_table[cltype36] == idtype37; +var2 = var_tpluseqnode2->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7105); +show_backtrace(1); +} +var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp); +{ +parser_prod__APlusAssignOp__init_aplusassignop(var3, var_tpluseqnode2); /* Direct call parser_prod#APlusAssignOp#init_aplusassignop on */ } +var_passignopnode1 = var3; +var_node_list = var_passignopnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -if (!var35) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6063); -exit(1); +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } -var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -var39 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var39, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var38); -var_pclassdefnode1 = var38; -var_node_list = var_pclassdefnode1; -var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var41 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var40) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var41, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction121#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction121__action(val* self, val* p0) { -parser__ReduceAction121__action(self, p0); +/* method parser#ReduceAction247#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction247__action(val* self, val* p0) { +parser__ReduceAction247__action(self, p0); /* Direct call parser#ReduceAction247#action on */ RET_LABEL:; } -/* method parser#ReduceAction122#action for (self: ReduceAction122, Parser) */ -void parser__ReduceAction122__action(val* self, val* p0) { +/* method parser#ReduceAction248#action for (self: ReduceAction248, Parser) */ +void parser__ReduceAction248__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* var11 /* : Array[Object] */; -val* var_listnode7 /* var listnode7: Array[Object] */; -val* var12 /* : Array[Object] */; -val* var_listnode15 /* var listnode15: Array[Object] */; -val* var13 /* : Array[Object] */; -val* var_listnode16 /* var listnode16: Array[Object] */; -val* var_pdocnode2 /* var pdocnode2: nullable Object */; -short int var14 /* : Bool */; +val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tclassidnode6 /* var tclassidnode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var27 /* : Array[Object] */; -val* var_listnode12 /* var listnode12: Array[Object] */; -val* var_listnode11 /* var listnode11: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var31 /* : Array[Object] */; -val* var32 /* : AAnnotations */; -val* var33 /* : null */; -val* var34 /* : null */; -val* var35 /* : null */; -val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */; -val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -val* var_tkwendnode17 /* var tkwendnode17: nullable Object */; -short int var39 /* : Bool */; -int cltype40; -int idtype41; -val* var42 /* : AStdClassdef */; -val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */; -long var43 /* : Int */; -long var44 /* : Int */; +val* var3 /* : AMinusAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */; +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_nodearraylist10 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var10; -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_listnode7 = 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_listnode15 = 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_listnode16 = var13; -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) { -var14 = 1; +{ +var1 = parser_work__Parser__pop(var_p); +} +var_nodearraylist1 = var1; +var_tminuseqnode2 = var_nodearraylist1; +/* isa nullable TMinuseq */ +cltype = type_nullable_parser_nodes__TMinuseq.color; +idtype = type_nullable_parser_nodes__TMinuseq.id; +if(var_tminuseqnode2 == NULL) { +var2 = 1; } else { -if(cltype >= var_pdocnode2->type->table_size) { -var14 = 0; +if(cltype >= var_tminuseqnode2->type->table_size) { +var2 = 0; } else { -var14 = var_pdocnode2->type->type_table[cltype] == idtype; -} +var2 = var_tminuseqnode2->type->type_table[cltype] == idtype; } -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6100); -exit(1); } -var_tkwredefnode3 = var_nodearraylist2; -/* isa nullable TKwredef */ -cltype16 = type_nullable_parser_nodes__TKwredef.color; -idtype17 = type_nullable_parser_nodes__TKwredef.id; -if(var_tkwredefnode3 == NULL) { -var15 = 1; -} else { -if(cltype16 >= var_tkwredefnode3->type->table_size) { -var15 = 0; -} else { -var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17; +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7120); +show_backtrace(1); } +var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp); +{ +parser_prod__AMinusAssignOp__init_aminusassignop(var3, var_tminuseqnode2); /* Direct call parser_prod#AMinusAssignOp#init_aminusassignop on */ } -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6102); -exit(1); +var_passignopnode1 = var3; +var_node_list = var_passignopnode1; +var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var5 = parser_work__Parser__go_to(var_p, var4); } -var_pvisibilitynode4 = var_nodearraylist3; -/* isa nullable AVisibility */ -cltype19 = type_nullable_parser_nodes__AVisibility.color; -idtype20 = type_nullable_parser_nodes__AVisibility.id; -if(var_pvisibilitynode4 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pvisibilitynode4->type->table_size) { -var18 = 0; -} else { -var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20; +{ +parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6104); -exit(1); +/* method parser#ReduceAction248#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction248__action(val* self, val* p0) { +parser__ReduceAction248__action(self, p0); /* Direct call parser#ReduceAction248#action on */ +RET_LABEL:; } -var_pclasskindnode5 = var_nodearraylist4; -/* isa nullable AClasskind */ -cltype22 = type_nullable_parser_nodes__AClasskind.color; -idtype23 = type_nullable_parser_nodes__AClasskind.id; -if(var_pclasskindnode5 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_pclasskindnode5->type->table_size) { -var21 = 0; -} else { -var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23; +/* method parser#ReduceAction249#action for (self: ReduceAction249, Parser) */ +void parser__ReduceAction249__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_plabelnode4 /* var plabelnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : ADoExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */; +long var12 /* : Int */; +long var13 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +{ +var1 = parser_work__Parser__pop(var_p); } +var_nodearraylist3 = var1; +{ +var2 = parser_work__Parser__pop(var_p); } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6106); -exit(1); +var_nodearraylist2 = var2; +{ +var3 = parser_work__Parser__pop(var_p); } -var_tclassidnode6 = var_nodearraylist6; -/* isa nullable TClassid */ -cltype25 = type_nullable_parser_nodes__TClassid.color; -idtype26 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode6 == NULL) { -var24 = 1; +var_nodearraylist1 = var3; +var_tkwdonode2 = var_nodearraylist1; +/* isa nullable TKwdo */ +cltype = type_nullable_parser_nodes__TKwdo.color; +idtype = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode2 == NULL) { +var4 = 1; } else { -if(cltype25 >= var_tclassidnode6->type->table_size) { -var24 = 0; +if(cltype >= var_tkwdonode2->type->table_size) { +var4 = 0; } else { -var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26; +var4 = var_tkwdonode2->type->type_table[cltype] == idtype; } } -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6108); -exit(1); +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7137); +show_backtrace(1); } -var27 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var27->class->vft[COLOR_array__Array__init]))(var27) /* init on */; -CHECK_NEW_array__Array(var27); -var_listnode12 = var27; -var_listnode11 = var_nodearraylist7; -/* isa Array[Object] */ -cltype29 = type_array__Arraykernel__Object.color; -idtype30 = type_array__Arraykernel__Object.id; -if(var_listnode11 == NULL) { -var28 = 0; +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype6 = type_nullable_parser_nodes__AExpr.color; +idtype7 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var5 = 1; } else { -if(cltype29 >= var_listnode11->type->table_size) { -var28 = 0; +if(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; } else { -var28 = var_listnode11->type->type_table[cltype29] == idtype30; +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; } } -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6111); -exit(1); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7139); +show_backtrace(1); } -var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on */; -var_listnode12 = var31; -var32 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations); -var33 = NULL; -var34 = NULL; -var35 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var32, var33, var34, var_listnode12, var35) /* init_aannotations on */; -CHECK_NEW_parser_nodes__AAnnotations(var32); -var_pannotationsnode8 = var32; -var_pexterncodeblocknode14 = var_nodearraylist8; -/* isa nullable AExternCodeBlock */ -cltype37 = type_nullable_parser_nodes__AExternCodeBlock.color; -idtype38 = type_nullable_parser_nodes__AExternCodeBlock.id; -if(var_pexterncodeblocknode14 == NULL) { -var36 = 1; +var_plabelnode4 = var_nodearraylist3; +/* isa nullable ALabel */ +cltype9 = type_nullable_parser_nodes__ALabel.color; +idtype10 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode4 == NULL) { +var8 = 1; } else { -if(cltype37 >= var_pexterncodeblocknode14->type->table_size) { -var36 = 0; +if(cltype9 >= var_plabelnode4->type->table_size) { +var8 = 0; } else { -var36 = var_pexterncodeblocknode14->type->type_table[cltype37] == idtype38; +var8 = var_plabelnode4->type->type_table[cltype9] == idtype10; } } -if (!var36) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6120); -exit(1); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7141); +show_backtrace(1); } -var_tkwendnode17 = var_nodearraylist10; -/* isa nullable TKwend */ -cltype40 = type_nullable_parser_nodes__TKwend.color; -idtype41 = type_nullable_parser_nodes__TKwend.id; -if(var_tkwendnode17 == NULL) { -var39 = 1; -} else { -if(cltype40 >= var_tkwendnode17->type->table_size) { -var39 = 0; -} else { -var39 = var_tkwendnode17->type->type_table[cltype40] == idtype41; +var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr); +{ +parser_prod__ADoExpr__init_adoexpr(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod#ADoExpr#init_adoexpr on */ } +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var13 = parser_work__Parser__go_to(var_p, var12); } -if (!var39) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 6122); -exit(1); +{ +parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; } -var42 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef); -((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var42->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var42, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode16, var_tkwendnode17) /* init_astdclassdef on */; -CHECK_NEW_parser_nodes__AStdClassdef(var42); -var_pclassdefnode1 = var42; -var_node_list = var_pclassdefnode1; -var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var44 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var43) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var44, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction122#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction122__action(val* self, val* p0) { -parser__ReduceAction122__action(self, p0); +/* method parser#ReduceAction249#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction249__action(val* self, val* p0) { +parser__ReduceAction249__action(self, p0); /* Direct call parser#ReduceAction249#action on */ RET_LABEL:; }