X-Git-Url: http://nitlanguage.org diff --git a/c_src/parser.sep.14.c b/c_src/parser.sep.14.c index 6b7155c..942bdb1 100644 --- a/c_src/parser.sep.14.c +++ b/c_src/parser.sep.14.c @@ -1,472 +1,354 @@ #include "parser.sep.0.h" -/* method parser#ReduceAction629#action for (self: ReduceAction629, Parser) */ -void parser__ReduceAction629__action(val* self, val* p0) { +/* method parser#ReduceAction652#action for (self: ReduceAction652, Parser) */ +void parser__ReduceAction652__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_tclassidnode5 /* var tclassidnode5: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var11 /* : AQualified */; -val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */; -val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_pexprsnode7 /* var pexprsnode7: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : ASuperExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */; -long var19 /* : Int */; -long var20 /* : Int */; +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_nodearraylist4 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); -var_listnode4 = var5; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +var_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_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(cltype >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var7 = 0; } else { -var6 = var_listnode3->type->type_table[cltype] == idtype; +var7 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24492); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25026); +show_backtrace(1); } -var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var7; -var_tclassidnode5 = var_nodearraylist2; -/* isa nullable TClassid */ -cltype9 = type_nullable_parser_nodes__TClassid.color; -idtype10 = type_nullable_parser_nodes__TClassid.id; -if(var_tclassidnode5 == NULL) { +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(cltype9 >= var_tclassidnode5->type->table_size) { +if(cltype9 >= var_tidnode3->type->table_size) { var8 = 0; } else { -var8 = var_tclassidnode5->type->type_table[cltype9] == idtype10; +var8 = var_tidnode3->type->type_table[cltype9] == idtype10; } } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24495); -exit(1); -} -var11 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified); -((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var11, var_listnode4, var_tclassidnode5) /* init_aqualified on */; -CHECK_NEW_parser_nodes__AQualified(var11); -var_pqualifiednode2 = var11; -var_tkwsupernode6 = var_nodearraylist3; -/* isa nullable TKwsuper */ -cltype13 = type_nullable_parser_nodes__TKwsuper.color; -idtype14 = type_nullable_parser_nodes__TKwsuper.id; -if(var_tkwsupernode6 == NULL) { -var12 = 1; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25028); +show_backtrace(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(cltype13 >= var_tkwsupernode6->type->table_size) { -var12 = 0; +if(cltype12 >= var_ptypenode4->type->table_size) { +var11 = 0; } else { -var12 = var_tkwsupernode6->type->type_table[cltype13] == idtype14; +var11 = var_ptypenode4->type->type_table[cltype12] == idtype13; } } -if (!var12) { +if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24501); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25030); +show_backtrace(1); } -var_pexprsnode7 = var_nodearraylist4; -/* isa nullable AExprs */ -cltype16 = type_nullable_parser_nodes__AExprs.color; -idtype17 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode7 == NULL) { -var15 = 1; +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(cltype16 >= var_pexprsnode7->type->table_size) { -var15 = 0; +if(cltype15 >= var_tassignnode5->type->table_size) { +var14 = 0; } else { -var15 = var_pexprsnode7->type->type_table[cltype16] == idtype17; +var14 = var_tassignnode5->type->type_table[cltype15] == idtype16; } } -if (!var15) { +if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24503); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25032); +show_backtrace(1); } -var18 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr); -((void (*)(val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var18, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on */; -CHECK_NEW_parser_nodes__ASuperExpr(var18); -var_pexprnode1 = var18; +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(cltype18 >= var_pexprnode6->type->table_size) { +var17 = 0; +} else { +var17 = var_pexprnode6->type->type_table[cltype18] == idtype19; +} +} +if (!var17) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25034); +show_backtrace(1); +} +var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +var21 = NULL; +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21) /* init_avardeclexpr on */; +var_pexprnode1 = var20; var_node_list = var_pexprnode1; -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 */; +var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction629#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction629__action(val* self, val* p0) { -parser__ReduceAction629__action(self, p0); +/* method parser#ReduceAction652#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction652__action(val* self, val* p0) { +parser__ReduceAction652__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction630#action for (self: ReduceAction630, Parser) */ -void parser__ReduceAction630__action(val* self, val* p0) { +/* method parser#ReduceAction653#action for (self: ReduceAction653, Parser) */ +void parser__ReduceAction653__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var5 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var6 /* : Array[Object] */; -val* var7 /* : AQualified */; -val* var8 /* : null */; -val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */; -val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_pexprsnode7 /* var pexprsnode7: nullable Object */; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var15 /* : ASuperExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +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_nodearraylist3 = var1; +var_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_listnode4 = var4; -var_listnode3 = var_nodearraylist1; -/* isa Array[Object] */ -cltype = type_array__Arraykernel__Object.color; -idtype = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var5 = 0; +var_nodearraylist5 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var7; +var_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_listnode3->type->table_size) { -var5 = 0; +if(cltype >= var_tkwvarnode2->type->table_size) { +var8 = 0; } else { -var5 = var_listnode3->type->type_table[cltype] == idtype; +var8 = var_tkwvarnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24523); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25060); +show_backtrace(1); } -var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var6; -var7 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified); -var8 = NULL; -((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var7, var_listnode4, var8) /* init_aqualified on */; -CHECK_NEW_parser_nodes__AQualified(var7); -var_pqualifiednode2 = var7; -var_tkwsupernode6 = var_nodearraylist2; -/* isa nullable TKwsuper */ -cltype10 = type_nullable_parser_nodes__TKwsuper.color; -idtype11 = type_nullable_parser_nodes__TKwsuper.id; -if(var_tkwsupernode6 == NULL) { +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(cltype10 >= var_tkwsupernode6->type->table_size) { +if(cltype10 >= var_tidnode3->type->table_size) { var9 = 0; } else { -var9 = var_tkwsupernode6->type->type_table[cltype10] == idtype11; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24530); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25062); +show_backtrace(1); } -var_pexprsnode7 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype13 = type_nullable_parser_nodes__AExprs.color; -idtype14 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode7 == NULL) { +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(cltype13 >= var_pexprsnode7->type->table_size) { +if(cltype13 >= var_ptypenode4->type->table_size) { var12 = 0; } else { -var12 = var_pexprsnode7->type->type_table[cltype13] == idtype14; +var12 = var_ptypenode4->type->type_table[cltype13] == idtype14; } } if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24532); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25064); +show_backtrace(1); } -var15 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr); -((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var15, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on */; -CHECK_NEW_parser_nodes__ASuperExpr(var15); -var_pexprnode1 = var15; -var_node_list = var_pexprnode1; -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:; +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(cltype16 >= var_tassignnode5->type->table_size) { +var15 = 0; +} else { +var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; } -/* method parser#ReduceAction630#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction630__action(val* self, val* p0) { -parser__ReduceAction630__action(self, p0); -RET_LABEL:; } -/* method parser#ReduceAction631#action for (self: ReduceAction631, Parser) */ -void parser__ReduceAction631__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 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var_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 (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24553); -exit(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 (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24555); -exit(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 (!var10) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24557); -exit(1); -} -var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var13); -var_pexprnode1 = var13; -var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; -RET_LABEL:; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25066); +show_backtrace(1); } -/* method parser#ReduceAction631#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction631__action(val* self, val* p0) { -parser__ReduceAction631__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction632#action for (self: ReduceAction632, Parser) */ -void parser__ReduceAction632__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_tkwinitnode3 /* var tkwinitnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype; -int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -val* var8 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; -long var9 /* : Int */; -long var10 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3); -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) { -var4 = 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(cltype >= var_tkwinitnode3->type->table_size) { -var4 = 0; +if(cltype19 >= var_pexprnode6->type->table_size) { +var18 = 0; } else { -var4 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; } } -if (!var4) { +if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24576); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25068); +show_backtrace(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype6 = type_nullable_parser_nodes__AExprs.color; -idtype7 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode4 == NULL) { -var5 = 1; +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(cltype6 >= var_pexprsnode4->type->table_size) { -var5 = 0; +if(cltype22 >= var_pannotationsnode7->type->table_size) { +var21 = 0; } else { -var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7; +var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23; } } -if (!var5) { +if (!var21) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24578); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25070); +show_backtrace(1); } -var8 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var8); -var_pexprnode1 = var8; +var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on */; +var_pexprnode1 = var24; var_node_list = var_pexprnode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction632#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction632__action(val* self, val* p0) { -parser__ReduceAction632__action(self, p0); +/* method parser#ReduceAction653#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction653__action(val* self, val* p0) { +parser__ReduceAction653__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction633#action for (self: ReduceAction633, Parser) */ -void parser__ReduceAction633__action(val* self, val* p0) { +/* method parser#ReduceAction654#action for (self: ReduceAction654, Parser) */ +void parser__ReduceAction654__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -486,18 +368,22 @@ val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var7 /* : Bool */; int cltype; int idtype; -val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_tassignnode4 /* var tassignnode4: 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 */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +long var18 /* : Int */; +long var19 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -528,1098 +414,888 @@ var7 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24600); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25095); +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) { +var_tattridnode3 = var_nodearraylist4; +/* isa nullable TAttrid */ +cltype9 = type_nullable_parser_nodes__TAttrid.color; +idtype10 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_tkwinitnode3->type->table_size) { +if(cltype9 >= var_tattridnode3->type->table_size) { var8 = 0; } else { -var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10; +var8 = var_tattridnode3->type->type_table[cltype9] == idtype10; } } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24602); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25097); +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) { +var_tassignnode4 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype12 = type_nullable_parser_nodes__TAssign.color; +idtype13 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { var11 = 1; } else { -if(cltype12 >= var_pexprsnode4->type->table_size) { +if(cltype12 >= var_tassignnode4->type->table_size) { var11 = 0; } else { -var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13; +var11 = var_tassignnode4->type->type_table[cltype12] == idtype13; } } if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24604); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25099); +show_backtrace(1); } -var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var14); -var_pexprnode1 = var14; +var_pexprnode5 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var14 = 1; +} else { +if(cltype15 >= var_pexprnode5->type->table_size) { +var14 = 0; +} else { +var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; +} +} +if (!var14) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25101); +show_backtrace(1); +} +var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction633#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction633__action(val* self, val* p0) { -parser__ReduceAction633__action(self, p0); +/* method parser#ReduceAction654#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction654__action(val* self, val* p0) { +parser__ReduceAction654__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction634#action for (self: ReduceAction634, Parser) */ -void parser__ReduceAction634__action(val* self, val* p0) { +/* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */ +void parser__ReduceAction655__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pexprnode5 /* var pexprnode5: 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 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +val* var12 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +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_nodearraylist7 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; +var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_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; +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var4; +var_tattridnode3 = var_nodearraylist1; +/* isa nullable TAttrid */ +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var5 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var5 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var5 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24627); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25122); +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; +var_tassignnode4 = var_nodearraylist2; +/* isa nullable TAssign */ +cltype7 = type_nullable_parser_nodes__TAssign.color; +idtype8 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { +var6 = 1; } else { -if(cltype10 >= var_tkwinitnode3->type->table_size) { -var9 = 0; +if(cltype7 >= var_tassignnode4->type->table_size) { +var6 = 0; } else { -var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11; +var6 = var_tassignnode4->type->type_table[cltype7] == idtype8; } } -if (!var9) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24629); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25124); +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; +var_pexprnode5 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var9 = 1; } else { -if(cltype13 >= var_pexprsnode4->type->table_size) { -var12 = 0; +if(cltype10 >= var_pexprnode5->type->table_size) { +var9 = 0; } else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; } } -if (!var12) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24631); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25126); +show_backtrace(1); } -var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var15); -var_pexprnode1 = var15; +var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var12; var_node_list = var_pexprnode1; -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 */; +var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction634#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction634__action(val* self, val* p0) { -parser__ReduceAction634__action(self, p0); +/* method parser#ReduceAction655#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) { +parser__ReduceAction655__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction636#action for (self: ReduceAction636, Parser) */ -void parser__ReduceAction636__action(val* self, val* p0) { +/* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */ +void parser__ReduceAction656__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; -short int var5 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -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 */; +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_nodearraylist3 = var1; +var_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4); -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) { -var5 = 1; +var_nodearraylist5 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var7; +var_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_tkwinitnode3->type->table_size) { -var5 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var5 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24651); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25150); +show_backtrace(1); } -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype7 = type_nullable_parser_nodes__AExprs.color; -idtype8 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode4 == NULL) { -var6 = 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(cltype7 >= var_pexprsnode4->type->table_size) { -var6 = 0; +if(cltype10 >= var_tattridnode3->type->table_size) { +var9 = 0; } else { -var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8; +var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; } } -if (!var6) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24653); -exit(1); -} -var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var9); -var_pexprnode1 = var9; -var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction636#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction636__action(val* self, val* p0) { -parser__ReduceAction636__action(self, p0); -RET_LABEL:; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25152); +show_backtrace(1); } -/* method parser#ReduceAction637#action for (self: ReduceAction637, Parser) */ -void parser__ReduceAction637__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_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 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5); -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) { -var6 = 1; +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(cltype >= var_tkwinitnode3->type->table_size) { -var6 = 0; +if(cltype13 >= var_tassignnode4->type->table_size) { +var12 = 0; } else { -var6 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var12 = var_tassignnode4->type->type_table[cltype13] == idtype14; } } -if (!var6) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24674); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25154); +show_backtrace(1); } -var_pexprsnode4 = var_nodearraylist4; -/* isa nullable AExprs */ -cltype8 = type_nullable_parser_nodes__AExprs.color; -idtype9 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode4 == NULL) { -var7 = 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(cltype8 >= var_pexprsnode4->type->table_size) { -var7 = 0; +if(cltype16 >= var_pexprnode5->type->table_size) { +var15 = 0; } else { -var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; +var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; } } -if (!var7) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24676); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25156); +show_backtrace(1); } -var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr); -((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on */; -CHECK_NEW_parser_nodes__AInitExpr(var10); -var_pexprnode1 = var10; +var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var18; var_node_list = var_pexprnode1; -var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on */; +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#ReduceAction637#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction637__action(val* self, val* p0) { -parser__ReduceAction637__action(self, p0); +/* method parser#ReduceAction656#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) { +parser__ReduceAction656__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction639#action for (self: ReduceAction639, Parser) */ -void parser__ReduceAction639__action(val* self, val* p0) { +/* method parser#ReduceAction657#action for (self: ReduceAction657, Parser) */ +void parser__ReduceAction657__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */; -short int var6 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; short int var10 /* : Bool */; int cltype11; int idtype12; -val* var_ptypenode5 /* var ptypenode5: nullable Object */; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var16 /* : ADebugTypeExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +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_nodearraylist5 = var1; +var_nodearraylist8 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist7 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist6 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; +var_nodearraylist5 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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(cltype >= var_tkwdebugnode2->type->table_size) { -var6 = 0; -} else { -var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24697); -exit(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; +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; +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(cltype8 >= var_tkwtypenode3->type->table_size) { -var7 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; } else { -var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9; +var9 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24699); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25181); +show_backtrace(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) { +var_tattridnode3 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype11 = type_nullable_parser_nodes__TAttrid.color; +idtype12 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { var10 = 1; } else { -if(cltype11 >= var_pexprnode4->type->table_size) { +if(cltype11 >= var_tattridnode3->type->table_size) { var10 = 0; } else { -var10 = var_pexprnode4->type->type_table[cltype11] == idtype12; +var10 = var_tattridnode3->type->type_table[cltype11] == idtype12; } } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24701); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25183); +show_backtrace(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) { +var_tassignnode4 = var_nodearraylist7; +/* isa nullable TAssign */ +cltype14 = type_nullable_parser_nodes__TAssign.color; +idtype15 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { var13 = 1; } else { -if(cltype14 >= var_ptypenode5->type->table_size) { +if(cltype14 >= var_tassignnode4->type->table_size) { var13 = 0; } else { -var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; +var13 = var_tassignnode4->type->type_table[cltype14] == idtype15; } } if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24703); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25185); +show_backtrace(1); } -var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr); -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ADebugTypeExpr__init_adebugtypeexpr]))(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5) /* init_adebugtypeexpr on */; -CHECK_NEW_parser_nodes__ADebugTypeExpr(var16); -var_pexprnode1 = var16; +var_pexprnode5 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_pexprnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; +} +} +if (!var16) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25187); +show_backtrace(1); +} +var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction639#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction639__action(val* self, val* p0) { -parser__ReduceAction639__action(self, p0); +/* method parser#ReduceAction657#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction657__action(val* self, val* p0) { +parser__ReduceAction657__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction640#action for (self: ReduceAction640, Parser) */ -void parser__ReduceAction640__action(val* self, val* p0) { +/* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */ +void parser__ReduceAction659__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; -short int var3 /* : Bool */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -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 */; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +long var14 /* : Int */; +long var15 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; +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) { +var6 = 1; } else { -if(cltype >= var_tkwlabelnode2->type->table_size) { -var3 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var6 = 0; } else { -var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype; +var6 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var3) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24722); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25209); +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; +var_tassignnode4 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype8 = type_nullable_parser_nodes__TAssign.color; +idtype9 = type_nullable_parser_nodes__TAssign.id; +if(var_tassignnode4 == NULL) { +var7 = 1; } else { -if(cltype5 >= var_tidnode3->type->table_size) { -var4 = 0; +if(cltype8 >= var_tassignnode4->type->table_size) { +var7 = 0; } else { -var4 = var_tidnode3->type->type_table[cltype5] == idtype6; +var7 = var_tassignnode4->type->type_table[cltype8] == idtype9; } } -if (!var4) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24724); -exit(1); -} -var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel); -((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALabel__init_alabel]))(var7, var_tkwlabelnode2, var_tidnode3) /* init_alabel on */; -CHECK_NEW_parser_nodes__ALabel(var7); -var_plabelnode1 = var7; -var_node_list = var_plabelnode1; -var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction640#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction640__action(val* self, val* p0) { -parser__ReduceAction640__action(self, p0); -RET_LABEL:; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25211); +show_backtrace(1); } -/* method parser#ReduceAction641#action for (self: ReduceAction641, Parser) */ -void parser__ReduceAction641__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_pexprnode4 /* var pexprnode4: nullable Object */; -short int var2 /* : Bool */; -int cltype; -int idtype; -val* var3 /* : AContinueExpr */; -val* var4 /* : null */; -val* var5 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */; -long var6 /* : Int */; -long var7 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var1; -var_pexprnode4 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable_parser_nodes__AExpr.color; -idtype = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { -var2 = 1; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype11 = type_nullable_parser_nodes__AExpr.color; +idtype12 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var10 = 1; } else { -if(cltype >= var_pexprnode4->type->table_size) { -var2 = 0; +if(cltype11 >= var_pexprnode5->type->table_size) { +var10 = 0; } else { -var2 = var_pexprnode4->type->type_table[cltype] == idtype; +var10 = var_pexprnode5->type->type_table[cltype11] == idtype12; } } -if (!var2) { +if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24740); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25213); +show_backtrace(1); } -var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr); -var4 = NULL; -var5 = NULL; -((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var4, var5, var_pexprnode4) /* init_acontinueexpr on */; -CHECK_NEW_parser_nodes__AContinueExpr(var3); -var_pexprnode1 = var3; +var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var13; var_node_list = var_pexprnode1; -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 */; +var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction641#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction641__action(val* self, val* p0) { -parser__ReduceAction641__action(self, p0); +/* method parser#ReduceAction659#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) { +parser__ReduceAction659__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction642#action for (self: ReduceAction642, Parser) */ -void parser__ReduceAction642__action(val* self, val* p0) { +/* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */ +void parser__ReduceAction660__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_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_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var3 /* : Bool */; +val* var6 /* : 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_tidnode3 /* var tidnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : AVardeclExpr */; -val* var8 /* : null */; -val* var9 /* : null */; -val* var10 /* : null */; -val* var11 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; -long var12 /* : Int */; -long var13 /* : 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_nodearraylist2 = var1; +var_nodearraylist5 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -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) { -var3 = 1; -} else { -if(cltype >= var_tkwvarnode2->type->table_size) { -var3 = 0; -} else { -var3 = var_tkwvarnode2->type->type_table[cltype] == idtype; -} -} -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24758); -exit(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 (!var4) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24760); -exit(1); -} -var7 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var8 = NULL; -var9 = NULL; -var10 = NULL; -var11 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var7, var_tkwvarnode2, var_tidnode3, var8, var9, var10, var11) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var7); -var_pexprnode1 = var7; -var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction642#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction642__action(val* self, val* p0) { -parser__ReduceAction642__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction643#action for (self: ReduceAction643, Parser) */ -void parser__ReduceAction643__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_pannotationsnode7 /* var pannotationsnode7: 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 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist4 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +var_nodearraylist3 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var6; +var_tattridnode3 = var_nodearraylist3; +/* 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(cltype >= var_tkwvarnode2->type->table_size) { -var4 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var7 = 0; } else { -var4 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var7 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var4) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24782); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25236); +show_backtrace(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; +var_tassignnode4 = var_nodearraylist4; +/* 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(cltype6 >= var_tidnode3->type->table_size) { -var5 = 0; +if(cltype9 >= var_tassignnode4->type->table_size) { +var8 = 0; } else { -var5 = var_tidnode3->type->type_table[cltype6] == idtype7; +var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; } } -if (!var5) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24784); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25238); +show_backtrace(1); } -var_pannotationsnode7 = var_nodearraylist3; -/* isa nullable AAnnotations */ -cltype9 = type_nullable_parser_nodes__AAnnotations.color; -idtype10 = type_nullable_parser_nodes__AAnnotations.id; -if(var_pannotationsnode7 == NULL) { -var8 = 1; +var_pexprnode5 = var_nodearraylist5; +/* 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(cltype9 >= var_pannotationsnode7->type->table_size) { -var8 = 0; +if(cltype12 >= var_pexprnode5->type->table_size) { +var11 = 0; } else { -var8 = var_pannotationsnode7->type->type_table[cltype9] == idtype10; +var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; } } -if (!var8) { +if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24786); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25240); +show_backtrace(1); } -var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var12 = NULL; -var13 = NULL; -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var12, var13, var14, var_pannotationsnode7) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var11); -var_pexprnode1 = var11; +var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +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#ReduceAction643#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction643__action(val* self, val* p0) { -parser__ReduceAction643__action(self, p0); +/* method parser#ReduceAction660#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) { +parser__ReduceAction660__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction644#action for (self: ReduceAction644, Parser) */ -void parser__ReduceAction644__action(val* self, val* p0) { +/* method parser#ReduceAction662#action for (self: ReduceAction662, Parser) */ +void parser__ReduceAction662__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : 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 */; +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_pexprnode6 /* var pexprnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +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_nodearraylist3 = var1; +var_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +var_nodearraylist5 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var7; +var_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_tkwvarnode2->type->table_size) { -var4 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var8 = 0; } else { -var4 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var8 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var4) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24808); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25264); +show_backtrace(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist4; /* isa nullable TId */ -cltype6 = type_nullable_parser_nodes__TId.color; -idtype7 = type_nullable_parser_nodes__TId.id; +cltype10 = type_nullable_parser_nodes__TId.color; +idtype11 = type_nullable_parser_nodes__TId.id; if(var_tidnode3 == NULL) { -var5 = 1; +var9 = 1; } else { -if(cltype6 >= var_tidnode3->type->table_size) { -var5 = 0; +if(cltype10 >= var_tidnode3->type->table_size) { +var9 = 0; } else { -var5 = var_tidnode3->type->type_table[cltype6] == idtype7; +var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } } -if (!var5) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24810); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25266); +show_backtrace(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; +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(cltype9 >= var_ptypenode4->type->table_size) { -var8 = 0; +if(cltype13 >= var_pexprsnode4->type->table_size) { +var12 = 0; } else { -var8 = var_ptypenode4->type->type_table[cltype9] == idtype10; +var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; } } -if (!var8) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24812); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25268); +show_backtrace(1); } -var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var12 = NULL; -var13 = NULL; -var14 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var11); -var_pexprnode1 = var11; -var_node_list = var_pexprnode1; -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#ReduceAction644#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction644__action(val* self, val* p0) { -parser__ReduceAction644__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction645#action for (self: ReduceAction645, Parser) */ -void parser__ReduceAction645__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var5 /* : Bool */; -int cltype; -int idtype; -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_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -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(cltype >= var_tkwvarnode2->type->table_size) { -var5 = 0; -} else { -var5 = var_tkwvarnode2->type->type_table[cltype] == idtype; -} -} -if (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24835); -exit(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(cltype7 >= var_tidnode3->type->table_size) { -var6 = 0; -} else { -var6 = var_tidnode3->type->type_table[cltype7] == idtype8; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24837); -exit(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; +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(cltype10 >= var_ptypenode4->type->table_size) { -var9 = 0; +if(cltype16 >= var_tassignnode5->type->table_size) { +var15 = 0; } else { -var9 = var_ptypenode4->type->type_table[cltype10] == idtype11; +var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; } } -if (!var9) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24839); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25270); +show_backtrace(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; +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(cltype13 >= var_pannotationsnode7->type->table_size) { -var12 = 0; +if(cltype19 >= var_pexprnode6->type->table_size) { +var18 = 0; } else { -var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14; +var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; } } -if (!var12) { +if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24841); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25272); +show_backtrace(1); } -var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var16 = NULL; -var17 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var15); -var_pexprnode1 = var15; +var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; +var_pexprnode1 = var21; var_node_list = var_pexprnode1; -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 */; +var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction645#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction645__action(val* self, val* p0) { -parser__ReduceAction645__action(self, p0); +/* method parser#ReduceAction662#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction662__action(val* self, val* p0) { +parser__ReduceAction662__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction646#action for (self: ReduceAction646, Parser) */ -void parser__ReduceAction646__action(val* self, val* p0) { +/* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */ +void parser__ReduceAction663__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +val* var5 /* : 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_tidnode3 /* var tidnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var7 /* : Bool */; int cltype8; int idtype9; @@ -1631,60 +1307,59 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var16 /* : AVardeclExpr */; -val* var17 /* : null */; -val* var18 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; -long var19 /* : Int */; -long var20 /* : Int */; +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_nodearraylist5 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var_tkwvarnode2 = var_nodearraylist1; -/* isa nullable TKwvar */ -cltype = type_nullable_parser_nodes__TKwvar.color; -idtype = type_nullable_parser_nodes__TKwvar.id; -if(var_tkwvarnode2 == NULL) { +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; +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) { var6 = 1; } else { -if(cltype >= var_tkwvarnode2->type->table_size) { +if(cltype >= var_tidnode3->type->table_size) { var6 = 0; } else { -var6 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var6 = var_tidnode3->type->type_table[cltype] == idtype; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24865); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25295); +show_backtrace(1); } -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype8 = type_nullable_parser_nodes__TId.color; -idtype9 = type_nullable_parser_nodes__TId.id; -if(var_tidnode3 == NULL) { +var_pexprsnode4 = var_nodearraylist2; +/* 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_tidnode3->type->table_size) { +if(cltype8 >= var_pexprsnode4->type->table_size) { var7 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype8] == idtype9; +var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; } } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24867); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25297); +show_backtrace(1); } var_tassignnode5 = var_nodearraylist3; /* isa nullable TAssign */ @@ -1701,10 +1376,10 @@ var10 = var_tassignnode5->type->type_table[cltype11] == idtype12; } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24869); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25299); +show_backtrace(1); } -var_pexprnode6 = var_nodearraylist5; +var_pexprnode6 = var_nodearraylist4; /* isa nullable AExpr */ cltype14 = type_nullable_parser_nodes__AExpr.color; idtype15 = type_nullable_parser_nodes__AExpr.id; @@ -1719,541 +1394,504 @@ var13 = var_pexprnode6->type->type_table[cltype14] == idtype15; } if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24871); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25301); +show_backtrace(1); } -var16 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var17 = NULL; -var18 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var16, var_tkwvarnode2, var_tidnode3, var17, var_tassignnode5, var_pexprnode6, var18) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var16); +var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; var_pexprnode1 = var16; var_node_list = var_pexprnode1; -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 */; +var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction646#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction646__action(val* self, val* p0) { -parser__ReduceAction646__action(self, p0); +/* method parser#ReduceAction663#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) { +parser__ReduceAction663__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction647#action for (self: ReduceAction647, Parser) */ -void parser__ReduceAction647__action(val* self, val* p0) { +/* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */ +void parser__ReduceAction664__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_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; +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_tassignnode5 /* var tassignnode5: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; +short int var16 /* : Bool */; +int cltype17; +int idtype18; val* var_pexprnode6 /* var pexprnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pannotationsnode7 /* var pannotationsnode7: 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 */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +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 */; -var_nodearraylist6 = var1; +var_nodearraylist8 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; +var_nodearraylist7 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; +var_nodearraylist6 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; +var_nodearraylist5 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; +var_nodearraylist4 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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(cltype >= var_tkwvarnode2->type->table_size) { -var7 = 0; +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; +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 { -var7 = var_tkwvarnode2->type->type_table[cltype] == idtype; +if(cltype >= var_pexprnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24896); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25327); +show_backtrace(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist5; /* isa nullable TId */ -cltype9 = type_nullable_parser_nodes__TId.color; -idtype10 = type_nullable_parser_nodes__TId.id; +cltype11 = type_nullable_parser_nodes__TId.color; +idtype12 = type_nullable_parser_nodes__TId.id; if(var_tidnode3 == NULL) { -var8 = 1; +var10 = 1; } else { -if(cltype9 >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype11 >= var_tidnode3->type->table_size) { +var10 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype9] == idtype10; +var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } } -if (!var8) { +if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24898); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25329); +show_backtrace(1); } -var_tassignnode5 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype12 = type_nullable_parser_nodes__TAssign.color; -idtype13 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode5 == NULL) { -var11 = 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(cltype12 >= var_tassignnode5->type->table_size) { -var11 = 0; +if(cltype14 >= var_pexprsnode4->type->table_size) { +var13 = 0; } else { -var11 = var_tassignnode5->type->type_table[cltype12] == idtype13; +var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; } } -if (!var11) { +if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24900); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25331); +show_backtrace(1); } -var_pexprnode6 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype15 = type_nullable_parser_nodes__AExpr.color; -idtype16 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode6 == NULL) { -var14 = 1; +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(cltype15 >= var_pexprnode6->type->table_size) { -var14 = 0; +if(cltype17 >= var_tassignnode5->type->table_size) { +var16 = 0; } else { -var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; +var16 = var_tassignnode5->type->type_table[cltype17] == idtype18; } } -if (!var14) { +if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24902); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25333); +show_backtrace(1); } -var_pannotationsnode7 = var_nodearraylist3; -/* isa nullable AAnnotations */ -cltype18 = type_nullable_parser_nodes__AAnnotations.color; -idtype19 = type_nullable_parser_nodes__AAnnotations.id; -if(var_pannotationsnode7 == NULL) { -var17 = 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(cltype18 >= var_pannotationsnode7->type->table_size) { -var17 = 0; +if(cltype20 >= var_pexprnode6->type->table_size) { +var19 = 0; } else { -var17 = var_pannotationsnode7->type->type_table[cltype18] == idtype19; +var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; } } -if (!var17) { +if (!var19) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24904); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25335); +show_backtrace(1); } -var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var21 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var21, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var20); -var_pexprnode1 = var20; +var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; +var_pexprnode1 = var22; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; +var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction647#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction647__action(val* self, val* p0) { -parser__ReduceAction647__action(self, p0); +/* method parser#ReduceAction664#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) { +parser__ReduceAction664__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction648#action for (self: ReduceAction648, Parser) */ -void parser__ReduceAction648__action(val* self, val* p0) { +/* method parser#ReduceAction665#action for (self: ReduceAction665, Parser) */ +void parser__ReduceAction665__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var10 /* : Bool */; int cltype; int idtype; 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 */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; +val* var_tassignnode5 /* var tassignnode5: 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 */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +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 */; -var_nodearraylist6 = var1; +var_nodearraylist9 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; +var_nodearraylist8 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; +var_nodearraylist7 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; +var_nodearraylist6 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; +var_nodearraylist5 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +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; +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_tkwvarnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var10 = 0; } else { -var7 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var10 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24929); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25362); +show_backtrace(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist6; /* isa nullable TId */ -cltype9 = type_nullable_parser_nodes__TId.color; -idtype10 = type_nullable_parser_nodes__TId.id; +cltype12 = type_nullable_parser_nodes__TId.color; +idtype13 = 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 (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24931); -exit(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(cltype12 >= var_ptypenode4->type->table_size) { +if(cltype12 >= var_tidnode3->type->table_size) { var11 = 0; } else { -var11 = var_ptypenode4->type->type_table[cltype12] == idtype13; +var11 = var_tidnode3->type->type_table[cltype12] == idtype13; } } if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24933); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25364); +show_backtrace(1); } -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) { +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_tassignnode5->type->table_size) { +if(cltype15 >= var_pexprsnode4->type->table_size) { var14 = 0; } else { -var14 = var_tassignnode5->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", 24935); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25366); +show_backtrace(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) { +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_pexprnode6->type->table_size) { +if(cltype18 >= var_tassignnode5->type->table_size) { var17 = 0; } else { -var17 = var_pexprnode6->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", 24937); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25368); +show_backtrace(1); } -var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -var21 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var20); -var_pexprnode1 = var20; -var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; -RET_LABEL:; +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_pexprnode6->type->table_size) { +var20 = 0; +} else { +var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; } -/* method parser#ReduceAction648#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction648__action(val* self, val* p0) { -parser__ReduceAction648__action(self, p0); +} +if (!var20) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25370); +show_backtrace(1); +} +var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; +var_pexprnode1 = var23; +var_node_list = var_pexprnode1; +var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction665#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction665__action(val* self, val* p0) { +parser__ReduceAction665__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction649#action for (self: ReduceAction649, Parser) */ -void parser__ReduceAction649__action(val* self, val* p0) { +/* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */ +void parser__ReduceAction667__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var8 /* : Bool */; +val* var6 /* : 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_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_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; val* var_tassignnode5 /* var tassignnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; +short int var11 /* : Bool */; +int cltype12; +int idtype13; 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 */; +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_nodearraylist7 = var1; +var_nodearraylist5 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; +var_nodearraylist4 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; +var_nodearraylist3 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; +var_nodearraylist2 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_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_tkwvarnode2->type->table_size) { -var8 = 0; -} else { -var8 = var_tkwvarnode2->type->type_table[cltype] == idtype; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24963); -exit(1); -} +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var6; var_tidnode3 = var_nodearraylist2; /* isa nullable TId */ -cltype10 = type_nullable_parser_nodes__TId.color; -idtype11 = type_nullable_parser_nodes__TId.id; +cltype = type_nullable_parser_nodes__TId.color; +idtype = type_nullable_parser_nodes__TId.id; if(var_tidnode3 == NULL) { -var9 = 1; +var7 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { -var9 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var7 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var7 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var9) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24965); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25394); +show_backtrace(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; +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(cltype13 >= var_ptypenode4->type->table_size) { -var12 = 0; +if(cltype9 >= var_pexprsnode4->type->table_size) { +var8 = 0; } else { -var12 = var_ptypenode4->type->type_table[cltype13] == idtype14; +var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; } } -if (!var12) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24967); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25396); +show_backtrace(1); } -var_tassignnode5 = var_nodearraylist5; +var_tassignnode5 = var_nodearraylist4; /* isa nullable TAssign */ -cltype16 = type_nullable_parser_nodes__TAssign.color; -idtype17 = type_nullable_parser_nodes__TAssign.id; +cltype12 = type_nullable_parser_nodes__TAssign.color; +idtype13 = type_nullable_parser_nodes__TAssign.id; if(var_tassignnode5 == NULL) { -var15 = 1; +var11 = 1; } else { -if(cltype16 >= var_tassignnode5->type->table_size) { -var15 = 0; +if(cltype12 >= var_tassignnode5->type->table_size) { +var11 = 0; } else { -var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; +var11 = var_tassignnode5->type->type_table[cltype12] == idtype13; } } -if (!var15) { +if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24969); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25398); +show_backtrace(1); } -var_pexprnode6 = var_nodearraylist7; +var_pexprnode6 = var_nodearraylist5; /* isa nullable AExpr */ -cltype19 = type_nullable_parser_nodes__AExpr.color; -idtype20 = type_nullable_parser_nodes__AExpr.id; +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode6 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pexprnode6->type->table_size) { -var18 = 0; -} else { -var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; -} -} -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24971); -exit(1); -} -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; +var14 = 1; } else { -if(cltype22 >= var_pannotationsnode7->type->table_size) { -var21 = 0; +if(cltype15 >= var_pexprnode6->type->table_size) { +var14 = 0; } else { -var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23; +var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; } } -if (!var21) { +if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24973); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25400); +show_backtrace(1); } -var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr); -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on */; -CHECK_NEW_parser_nodes__AVardeclExpr(var24); -var_pexprnode1 = var24; +var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on */; +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#ReduceAction649#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction649__action(val* self, val* p0) { -parser__ReduceAction649__action(self, p0); +/* method parser#ReduceAction667#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) { +parser__ReduceAction667__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction650#action for (self: ReduceAction650, Parser) */ -void parser__ReduceAction650__action(val* self, val* p0) { +/* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */ +void parser__ReduceAction668__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -2269,26 +1907,28 @@ 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 */; +val* var7 /* : 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_tattridnode3 /* var tattridnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AAttrAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; -long var18 /* : Int */; +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* var18 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; long var19 /* : Int */; +long var20 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -2304,730 +1944,992 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; 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; +var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on */; +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) { +var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var7 = 0; +if(cltype >= var_tidnode3->type->table_size) { +var8 = 0; } else { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = var_tidnode3->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24998); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25425); +show_backtrace(1); } -var_tattridnode3 = var_nodearraylist4; -/* isa nullable TAttrid */ -cltype9 = type_nullable_parser_nodes__TAttrid.color; -idtype10 = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { -var8 = 1; +var_pexprsnode4 = var_nodearraylist4; +/* 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(cltype9 >= var_tattridnode3->type->table_size) { -var8 = 0; +if(cltype10 >= var_pexprsnode4->type->table_size) { +var9 = 0; } else { -var8 = var_tattridnode3->type->type_table[cltype9] == idtype10; +var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; } } -if (!var8) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25000); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25427); +show_backtrace(1); } -var_tassignnode4 = var_nodearraylist5; -/* isa nullable TAssign */ -cltype12 = type_nullable_parser_nodes__TAssign.color; -idtype13 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode4 == NULL) { -var11 = 1; +var_tassignnode5 = var_nodearraylist5; +/* 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(cltype12 >= var_tassignnode4->type->table_size) { -var11 = 0; +if(cltype13 >= var_tassignnode5->type->table_size) { +var12 = 0; } else { -var11 = var_tassignnode4->type->type_table[cltype12] == idtype13; +var12 = var_tassignnode5->type->type_table[cltype13] == idtype14; } } -if (!var11) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25002); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25429); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype15 = type_nullable_parser_nodes__AExpr.color; -idtype16 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var14 = 1; +var_pexprnode6 = var_nodearraylist6; +/* 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(cltype15 >= var_pexprnode5->type->table_size) { -var14 = 0; +if(cltype16 >= var_pexprnode6->type->table_size) { +var15 = 0; } else { -var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; +var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; } } -if (!var14) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25004); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25431); +show_backtrace(1); } -var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var17); -var_pexprnode1 = var17; +var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; +var_pexprnode1 = var18; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction650#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction650__action(val* self, val* p0) { -parser__ReduceAction650__action(self, p0); +/* method parser#ReduceAction668#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) { +parser__ReduceAction668__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction651#action for (self: ReduceAction651, Parser) */ -void parser__ReduceAction651__action(val* self, val* p0) { +/* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */ +void parser__ReduceAction670__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; +val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var12 /* : AAttrAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; -long var13 /* : Int */; -long var14 /* : Int */; +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_nodearraylist3 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4); -var_pexprnode2 = var4; -var_tattridnode3 = var_nodearraylist1; -/* isa nullable TAttrid */ -cltype = type_nullable_parser_nodes__TAttrid.color; -idtype = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +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(cltype >= var_tattridnode3->type->table_size) { +if(cltype >= var_pexprnode2->type->table_size) { var5 = 0; } else { -var5 = var_tattridnode3->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25025); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25453); +show_backtrace(1); } -var_tassignnode4 = var_nodearraylist2; -/* isa nullable TAssign */ -cltype7 = type_nullable_parser_nodes__TAssign.color; -idtype8 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode4 == NULL) { +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(cltype7 >= var_tassignnode4->type->table_size) { +if(cltype7 >= var_pexprsnode3->type->table_size) { var6 = 0; } else { -var6 = var_tassignnode4->type->type_table[cltype7] == idtype8; +var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25027); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25455); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype10 = type_nullable_parser_nodes__AExpr.color; -idtype11 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { +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(cltype10 >= var_pexprnode5->type->table_size) { +if(cltype10 >= var_tassignnode4->type->table_size) { var9 = 0; } else { -var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; +var9 = var_tassignnode4->type->type_table[cltype10] == idtype11; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25029); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25457); +show_backtrace(1); } -var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var12); -var_pexprnode1 = var12; +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(cltype13 >= var_pexprnode5->type->table_size) { +var12 = 0; +} else { +var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; +} +} +if (!var12) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25459); +show_backtrace(1); +} +var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr); +((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraAssignExpr__init_abraassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5) /* init_abraassignexpr on */; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; +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#ReduceAction651#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction651__action(val* self, val* p0) { -parser__ReduceAction651__action(self, p0); +/* method parser#ReduceAction670#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) { +parser__ReduceAction670__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction652#action for (self: ReduceAction652, Parser) */ -void parser__ReduceAction652__action(val* self, val* p0) { +/* method parser#ReduceAction671#action for (self: ReduceAction671, Parser) */ +void parser__ReduceAction671__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* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var6 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; 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; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; 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 */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +long var18 /* : Int */; 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_nodearraylist7 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; +var_nodearraylist3 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; +var_nodearraylist2 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; +var_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) { -var8 = 1; +var7 = 1; } else { if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; +var7 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25053); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25482); +show_backtrace(1); } -var_tattridnode3 = var_nodearraylist5; +var_tattridnode3 = var_nodearraylist4; /* isa nullable TAttrid */ -cltype10 = type_nullable_parser_nodes__TAttrid.color; -idtype11 = type_nullable_parser_nodes__TAttrid.id; +cltype9 = type_nullable_parser_nodes__TAttrid.color; +idtype10 = type_nullable_parser_nodes__TAttrid.id; if(var_tattridnode3 == NULL) { -var9 = 1; +var8 = 1; } else { -if(cltype10 >= var_tattridnode3->type->table_size) { -var9 = 0; +if(cltype9 >= var_tattridnode3->type->table_size) { +var8 = 0; } else { -var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; +var8 = var_tattridnode3->type->type_table[cltype9] == idtype10; } } -if (!var9) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25055); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25484); +show_backtrace(1); } -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; +var_passignopnode4 = var_nodearraylist5; +/* isa nullable AAssignOp */ +cltype12 = type_nullable_parser_nodes__AAssignOp.color; +idtype13 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var11 = 1; } else { -if(cltype13 >= var_tassignnode4->type->table_size) { -var12 = 0; +if(cltype12 >= var_passignopnode4->type->table_size) { +var11 = 0; } else { -var12 = var_tassignnode4->type->type_table[cltype13] == idtype14; +var11 = var_passignopnode4->type->type_table[cltype12] == idtype13; } } -if (!var12) { +if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25057); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25486); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist7; +var_pexprnode5 = var_nodearraylist6; /* isa nullable AExpr */ -cltype16 = type_nullable_parser_nodes__AExpr.color; -idtype17 = type_nullable_parser_nodes__AExpr.id; +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode5 == NULL) { -var15 = 1; +var14 = 1; } else { -if(cltype16 >= var_pexprnode5->type->table_size) { -var15 = 0; +if(cltype15 >= var_pexprnode5->type->table_size) { +var14 = 0; } else { -var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; +var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; } } -if (!var15) { +if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25059); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25488); +show_backtrace(1); } -var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var18); -var_pexprnode1 = var18; +var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction652#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction652__action(val* self, val* p0) { -parser__ReduceAction652__action(self, p0); +/* method parser#ReduceAction671#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction671__action(val* self, val* p0) { +parser__ReduceAction671__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction653#action for (self: ReduceAction653, Parser) */ -void parser__ReduceAction653__action(val* self, val* p0) { +/* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */ +void parser__ReduceAction672__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var9 /* : Bool */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : AAttrAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; -long var20 /* : Int */; -long var21 /* : Int */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +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_nodearraylist8 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; +var_nodearraylist2 = 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; -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_pexprnode2->type->table_size) { -var9 = 0; -} else { -var9 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25084); -exit(1); -} -var_tattridnode3 = var_nodearraylist6; +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var4; +var_tattridnode3 = var_nodearraylist1; /* isa nullable TAttrid */ -cltype11 = type_nullable_parser_nodes__TAttrid.color; -idtype12 = type_nullable_parser_nodes__TAttrid.id; +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; if(var_tattridnode3 == NULL) { -var10 = 1; +var5 = 1; } else { -if(cltype11 >= var_tattridnode3->type->table_size) { -var10 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var5 = 0; } else { -var10 = var_tattridnode3->type->type_table[cltype11] == idtype12; +var5 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var10) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25086); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25509); +show_backtrace(1); } -var_tassignnode4 = var_nodearraylist7; -/* isa nullable TAssign */ -cltype14 = type_nullable_parser_nodes__TAssign.color; -idtype15 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode4 == NULL) { -var13 = 1; +var_passignopnode4 = var_nodearraylist2; +/* isa nullable AAssignOp */ +cltype7 = type_nullable_parser_nodes__AAssignOp.color; +idtype8 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var6 = 1; } else { -if(cltype14 >= var_tassignnode4->type->table_size) { -var13 = 0; +if(cltype7 >= var_passignopnode4->type->table_size) { +var6 = 0; } else { -var13 = var_tassignnode4->type->type_table[cltype14] == idtype15; +var6 = var_passignopnode4->type->type_table[cltype7] == idtype8; } } -if (!var13) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25088); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25511); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist8; +var_pexprnode5 = var_nodearraylist3; /* isa nullable AExpr */ -cltype17 = type_nullable_parser_nodes__AExpr.color; -idtype18 = type_nullable_parser_nodes__AExpr.id; +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode5 == NULL) { -var16 = 1; +var9 = 1; } else { -if(cltype17 >= var_pexprnode5->type->table_size) { -var16 = 0; +if(cltype10 >= var_pexprnode5->type->table_size) { +var9 = 0; } else { -var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; +var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; } } -if (!var16) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25090); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25513); +show_backtrace(1); } -var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var19); -var_pexprnode1 = var19; +var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var12; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; +var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction653#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction653__action(val* self, val* p0) { -parser__ReduceAction653__action(self, p0); +/* method parser#ReduceAction672#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) { +parser__ReduceAction672__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */ -void parser__ReduceAction655__action(val* self, val* p0) { +/* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */ +void parser__ReduceAction673__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; +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 var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : AAttrAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; -long var14 /* : Int */; -long var15 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +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_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist5 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5); -var_pexprnode2 = var5; -var_tattridnode3 = var_nodearraylist2; +var_nodearraylist4 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var7; +var_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 (!var8) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25537); +show_backtrace(1); +} +var_tattridnode3 = var_nodearraylist5; /* isa nullable TAttrid */ -cltype = type_nullable_parser_nodes__TAttrid.color; -idtype = type_nullable_parser_nodes__TAttrid.id; +cltype10 = type_nullable_parser_nodes__TAttrid.color; +idtype11 = type_nullable_parser_nodes__TAttrid.id; if(var_tattridnode3 == NULL) { -var6 = 1; +var9 = 1; } else { -if(cltype >= var_tattridnode3->type->table_size) { -var6 = 0; +if(cltype10 >= var_tattridnode3->type->table_size) { +var9 = 0; } else { -var6 = var_tattridnode3->type->type_table[cltype] == idtype; +var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; } } -if (!var6) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25112); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25539); +show_backtrace(1); } -var_tassignnode4 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype8 = type_nullable_parser_nodes__TAssign.color; -idtype9 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode4 == NULL) { -var7 = 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(cltype8 >= var_tassignnode4->type->table_size) { -var7 = 0; +if(cltype13 >= var_passignopnode4->type->table_size) { +var12 = 0; } else { -var7 = var_tassignnode4->type->type_table[cltype8] == idtype9; +var12 = var_passignopnode4->type->type_table[cltype13] == idtype14; } } -if (!var7) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25114); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25541); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist4; +var_pexprnode5 = var_nodearraylist7; /* isa nullable AExpr */ -cltype11 = type_nullable_parser_nodes__AExpr.color; -idtype12 = type_nullable_parser_nodes__AExpr.id; +cltype16 = type_nullable_parser_nodes__AExpr.color; +idtype17 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode5 == NULL) { -var10 = 1; +var15 = 1; } else { -if(cltype11 >= var_pexprnode5->type->table_size) { -var10 = 0; +if(cltype16 >= var_pexprnode5->type->table_size) { +var15 = 0; } else { -var10 = var_pexprnode5->type->type_table[cltype11] == idtype12; +var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; } } -if (!var10) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25116); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25543); +show_backtrace(1); } -var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var13); -var_pexprnode1 = var13; +var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var18; var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +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#ReduceAction655#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) { -parser__ReduceAction655__action(self, p0); +/* method parser#ReduceAction673#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) { +parser__ReduceAction673__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */ -void parser__ReduceAction656__action(val* self, val* p0) { +/* method parser#ReduceAction674#action for (self: ReduceAction674, Parser) */ +void parser__ReduceAction674__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var9 /* : Bool */; int cltype; int idtype; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; 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 */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +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_nodearraylist5 = var1; +var_nodearraylist8 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist7 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist6 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; +var_nodearraylist5 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6); -var_pexprnode2 = var6; -var_tattridnode3 = var_nodearraylist3; +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; +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_pexprnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_pexprnode2->type->type_table[cltype] == idtype; +} +} +if (!var9) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25568); +show_backtrace(1); +} +var_tattridnode3 = var_nodearraylist6; /* isa nullable TAttrid */ -cltype = type_nullable_parser_nodes__TAttrid.color; -idtype = type_nullable_parser_nodes__TAttrid.id; +cltype11 = type_nullable_parser_nodes__TAttrid.color; +idtype12 = type_nullable_parser_nodes__TAttrid.id; if(var_tattridnode3 == NULL) { -var7 = 1; +var10 = 1; } else { -if(cltype >= var_tattridnode3->type->table_size) { -var7 = 0; +if(cltype11 >= var_tattridnode3->type->table_size) { +var10 = 0; } else { -var7 = var_tattridnode3->type->type_table[cltype] == idtype; +var10 = var_tattridnode3->type->type_table[cltype11] == idtype12; } } -if (!var7) { +if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25139); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25570); +show_backtrace(1); } -var_tassignnode4 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype9 = type_nullable_parser_nodes__TAssign.color; -idtype10 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode4 == NULL) { -var8 = 1; +var_passignopnode4 = var_nodearraylist7; +/* isa nullable AAssignOp */ +cltype14 = type_nullable_parser_nodes__AAssignOp.color; +idtype15 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var13 = 1; } else { -if(cltype9 >= var_tassignnode4->type->table_size) { -var8 = 0; +if(cltype14 >= var_passignopnode4->type->table_size) { +var13 = 0; } else { -var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; +var13 = var_passignopnode4->type->type_table[cltype14] == idtype15; } } -if (!var8) { +if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25141); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25572); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist5; +var_pexprnode5 = var_nodearraylist8; /* isa nullable AExpr */ -cltype12 = type_nullable_parser_nodes__AExpr.color; -idtype13 = type_nullable_parser_nodes__AExpr.id; +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode5 == NULL) { -var11 = 1; +var16 = 1; } else { -if(cltype12 >= var_pexprnode5->type->table_size) { -var11 = 0; +if(cltype17 >= var_pexprnode5->type->table_size) { +var16 = 0; } else { -var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; +var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; } } -if (!var11) { +if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25143); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25574); +show_backtrace(1); } -var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on */; -CHECK_NEW_parser_nodes__AAttrAssignExpr(var14); -var_pexprnode1 = var14; +var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -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:; +var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; +RET_LABEL:; } -/* method parser#ReduceAction656#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) { -parser__ReduceAction656__action(self, p0); +/* method parser#ReduceAction674#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction674__action(val* self, val* p0) { +parser__ReduceAction674__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */ +void parser__ReduceAction676__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_tattridnode3 /* var tattridnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : AAttrReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; +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) { +var6 = 1; +} else { +if(cltype >= var_tattridnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_tattridnode3->type->type_table[cltype] == idtype; +} +} +if (!var6) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25596); +show_backtrace(1); +} +var_passignopnode4 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype8 = type_nullable_parser_nodes__AAssignOp.color; +idtype9 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var7 = 1; +} else { +if(cltype8 >= var_passignopnode4->type->table_size) { +var7 = 0; +} else { +var7 = var_passignopnode4->type->type_table[cltype8] == idtype9; +} +} +if (!var7) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25598); +show_backtrace(1); +} +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype11 = type_nullable_parser_nodes__AExpr.color; +idtype12 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_pexprnode5->type->table_size) { +var10 = 0; +} else { +var10 = var_pexprnode5->type->type_table[cltype11] == idtype12; +} +} +if (!var10) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25600); +show_backtrace(1); +} +var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var13; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction676#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) { +parser__ReduceAction676__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */ +void parser__ReduceAction677__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var6 /* : 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_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_nodearraylist5 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var5; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var6; +var_tattridnode3 = var_nodearraylist3; +/* 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(cltype >= var_tattridnode3->type->table_size) { +var7 = 0; +} else { +var7 = var_tattridnode3->type->type_table[cltype] == idtype; +} +} +if (!var7) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25623); +show_backtrace(1); +} +var_passignopnode4 = var_nodearraylist4; +/* 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(cltype9 >= var_passignopnode4->type->table_size) { +var8 = 0; +} else { +var8 = var_passignopnode4->type->type_table[cltype9] == idtype10; +} +} +if (!var8) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25625); +show_backtrace(1); +} +var_pexprnode5 = var_nodearraylist5; +/* 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(cltype12 >= var_pexprnode5->type->table_size) { +var11 = 0; +} else { +var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; +} +} +if (!var11) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25627); +show_backtrace(1); +} +var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +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#ReduceAction677#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) { +parser__ReduceAction677__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction658#action for (self: ReduceAction658, Parser) */ -void parser__ReduceAction658__action(val* self, val* p0) { +/* method parser#ReduceAction679#action for (self: ReduceAction679, Parser) */ +void parser__ReduceAction679__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3057,7 +2959,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; @@ -3065,8 +2967,8 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var21 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +val* var21 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var22 /* : Int */; long var23 /* : Int */; var_p = p0; @@ -3101,8 +3003,8 @@ var8 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25167); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25651); +show_backtrace(1); } var_tidnode3 = var_nodearraylist4; /* isa nullable TId */ @@ -3119,8 +3021,8 @@ var9 = var_tidnode3->type->type_table[cltype10] == idtype11; } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25169); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25653); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist5; /* isa nullable AExprs */ @@ -3137,26 +3039,26 @@ 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", 25171); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25655); +show_backtrace(1); } -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) { +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(cltype16 >= var_tassignnode5->type->table_size) { +if(cltype16 >= var_passignopnode5->type->table_size) { var15 = 0; } else { -var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; +var15 = var_passignopnode5->type->type_table[cltype16] == idtype17; } } if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25173); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25657); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist7; /* isa nullable AExpr */ @@ -3173,26 +3075,25 @@ var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; } if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25175); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25659); +show_backtrace(1); } -var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var21); +var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction658#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction658__action(val* self, val* p0) { -parser__ReduceAction658__action(self, p0); +/* method parser#ReduceAction679#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction679__action(val* self, val* p0) { +parser__ReduceAction679__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */ -void parser__ReduceAction659__action(val* self, val* p0) { +/* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */ +void parser__ReduceAction680__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3214,7 +3115,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var7 /* : Bool */; int cltype8; int idtype9; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var10 /* : Bool */; int cltype11; int idtype12; @@ -3222,8 +3123,8 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var16 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +val* var16 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var17 /* : Int */; long var18 /* : Int */; var_p = p0; @@ -3239,7 +3140,6 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist1 = var4; var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5); var_pexprnode2 = var5; var_tidnode3 = var_nodearraylist1; /* isa nullable TId */ @@ -3256,8 +3156,8 @@ var6 = var_tidnode3->type->type_table[cltype] == idtype; } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25198); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25682); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist2; /* isa nullable AExprs */ @@ -3274,26 +3174,26 @@ var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25200); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25684); +show_backtrace(1); } -var_tassignnode5 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype11 = type_nullable_parser_nodes__TAssign.color; -idtype12 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode5 == NULL) { +var_passignopnode5 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype11 = type_nullable_parser_nodes__AAssignOp.color; +idtype12 = type_nullable_parser_nodes__AAssignOp.id; +if(var_passignopnode5 == NULL) { var10 = 1; } else { -if(cltype11 >= var_tassignnode5->type->table_size) { +if(cltype11 >= var_passignopnode5->type->table_size) { var10 = 0; } else { -var10 = var_tassignnode5->type->type_table[cltype11] == idtype12; +var10 = var_passignopnode5->type->type_table[cltype11] == idtype12; } } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25202); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25686); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist4; /* isa nullable AExpr */ @@ -3310,26 +3210,25 @@ var13 = var_pexprnode6->type->type_table[cltype14] == idtype15; } if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25204); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25688); +show_backtrace(1); } -var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var16); +var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction659#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) { -parser__ReduceAction659__action(self, p0); +/* method parser#ReduceAction680#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) { +parser__ReduceAction680__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */ -void parser__ReduceAction660__action(val* self, val* p0) { +/* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */ +void parser__ReduceAction681__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3361,7 +3260,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; @@ -3369,8 +3268,8 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var19 /* : Bool */; int cltype20; int idtype21; -val* var22 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +val* var22 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var23 /* : Int */; long var24 /* : Int */; var_p = p0; @@ -3407,8 +3306,8 @@ var9 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25230); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25714); +show_backtrace(1); } var_tidnode3 = var_nodearraylist5; /* isa nullable TId */ @@ -3425,8 +3324,8 @@ var10 = var_tidnode3->type->type_table[cltype11] == idtype12; } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25232); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25716); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist6; /* isa nullable AExprs */ @@ -3443,26 +3342,26 @@ 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", 25234); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25718); +show_backtrace(1); } -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) { +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(cltype17 >= var_tassignnode5->type->table_size) { +if(cltype17 >= var_passignopnode5->type->table_size) { var16 = 0; } else { -var16 = var_tassignnode5->type->type_table[cltype17] == idtype18; +var16 = var_passignopnode5->type->type_table[cltype17] == idtype18; } } if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25236); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25720); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist8; /* isa nullable AExpr */ @@ -3479,26 +3378,25 @@ var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; } if (!var19) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25238); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25722); +show_backtrace(1); } -var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var22); +var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var22; var_node_list = var_pexprnode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction660#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) { -parser__ReduceAction660__action(self, p0); +/* method parser#ReduceAction681#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) { +parser__ReduceAction681__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction661#action for (self: ReduceAction661, Parser) */ -void parser__ReduceAction661__action(val* self, val* p0) { +/* method parser#ReduceAction682#action for (self: ReduceAction682, Parser) */ +void parser__ReduceAction682__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3532,7 +3430,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var17 /* : Bool */; int cltype18; int idtype19; @@ -3540,8 +3438,8 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var20 /* : Bool */; int cltype21; int idtype22; -val* var23 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +val* var23 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var24 /* : Int */; long var25 /* : Int */; var_p = p0; @@ -3580,8 +3478,8 @@ var10 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25265); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25749); +show_backtrace(1); } var_tidnode3 = var_nodearraylist6; /* isa nullable TId */ @@ -3598,8 +3496,8 @@ var11 = var_tidnode3->type->type_table[cltype12] == idtype13; } if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25267); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25751); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist7; /* isa nullable AExprs */ @@ -3616,26 +3514,26 @@ 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", 25269); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25753); +show_backtrace(1); } -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) { +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_tassignnode5->type->table_size) { +if(cltype18 >= var_passignopnode5->type->table_size) { var17 = 0; } else { -var17 = var_tassignnode5->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", 25271); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25755); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist9; /* isa nullable AExpr */ @@ -3652,26 +3550,25 @@ var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; } if (!var20) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25273); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25757); +show_backtrace(1); } -var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var23); +var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var23; var_node_list = var_pexprnode1; -var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction661#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction661__action(val* self, val* p0) { -parser__ReduceAction661__action(self, p0); +/* method parser#ReduceAction682#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction682__action(val* self, val* p0) { +parser__ReduceAction682__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */ -void parser__ReduceAction663__action(val* self, val* p0) { +/* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */ +void parser__ReduceAction684__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3695,7 +3592,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; @@ -3703,8 +3600,8 @@ 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 */; +val* var17 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var18 /* : Int */; long var19 /* : Int */; var_p = p0; @@ -3722,7 +3619,6 @@ var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist1 = var5; var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6); var_pexprnode2 = var6; var_tidnode3 = var_nodearraylist2; /* isa nullable TId */ @@ -3739,8 +3635,8 @@ var7 = var_tidnode3->type->type_table[cltype] == idtype; } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25297); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25781); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist3; /* isa nullable AExprs */ @@ -3757,26 +3653,26 @@ var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25299); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25783); +show_backtrace(1); } -var_tassignnode5 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype12 = type_nullable_parser_nodes__TAssign.color; -idtype13 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode5 == NULL) { +var_passignopnode5 = var_nodearraylist4; +/* 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(cltype12 >= var_tassignnode5->type->table_size) { +if(cltype12 >= var_passignopnode5->type->table_size) { var11 = 0; } else { -var11 = var_tassignnode5->type->type_table[cltype12] == idtype13; +var11 = var_passignopnode5->type->type_table[cltype12] == idtype13; } } if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25301); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25785); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist5; /* isa nullable AExpr */ @@ -3793,26 +3689,25 @@ var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; } if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25303); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25787); +show_backtrace(1); } -var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var17); +var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +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#ReduceAction663#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) { -parser__ReduceAction663__action(self, p0); +/* method parser#ReduceAction684#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) { +parser__ReduceAction684__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */ -void parser__ReduceAction664__action(val* self, val* p0) { +/* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */ +void parser__ReduceAction685__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3838,7 +3733,7 @@ val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; @@ -3846,8 +3741,8 @@ val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var18 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +val* var18 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; long var19 /* : Int */; long var20 /* : Int */; var_p = p0; @@ -3867,7 +3762,6 @@ var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist1 = var6; var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7); var_pexprnode2 = var7; var_tidnode3 = var_nodearraylist3; /* isa nullable TId */ @@ -3884,8 +3778,8 @@ var8 = var_tidnode3->type->type_table[cltype] == idtype; } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25328); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25812); +show_backtrace(1); } var_pexprsnode4 = var_nodearraylist4; /* isa nullable AExprs */ @@ -3902,26 +3796,26 @@ var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25330); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25814); +show_backtrace(1); } -var_tassignnode5 = var_nodearraylist5; -/* isa nullable TAssign */ -cltype13 = type_nullable_parser_nodes__TAssign.color; -idtype14 = type_nullable_parser_nodes__TAssign.id; -if(var_tassignnode5 == NULL) { +var_passignopnode5 = var_nodearraylist5; +/* 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(cltype13 >= var_tassignnode5->type->table_size) { +if(cltype13 >= var_passignopnode5->type->table_size) { var12 = 0; } else { -var12 = var_tassignnode5->type->type_table[cltype13] == idtype14; +var12 = var_passignopnode5->type->type_table[cltype13] == idtype14; } } if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25332); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25816); +show_backtrace(1); } var_pexprnode6 = var_nodearraylist6; /* isa nullable AExpr */ @@ -3938,26 +3832,25 @@ var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; } if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25334); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25818); +show_backtrace(1); } -var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on */; -CHECK_NEW_parser_nodes__ACallAssignExpr(var18); +var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; var_pexprnode1 = var18; var_node_list = var_pexprnode1; -var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +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#ReduceAction664#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) { -parser__ReduceAction664__action(self, p0); +/* method parser#ReduceAction685#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) { +parser__ReduceAction685__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction666#action for (self: ReduceAction666, Parser) */ -void parser__ReduceAction666__action(val* self, val* p0) { +/* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */ +void parser__ReduceAction687__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -3977,7 +3870,7 @@ val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; @@ -3985,8 +3878,8 @@ 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 */; +val* var15 /* : ABraReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */; long var16 /* : Int */; long var17 /* : Int */; var_p = p0; @@ -4015,8 +3908,8 @@ var5 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25356); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25840); +show_backtrace(1); } var_pexprsnode3 = var_nodearraylist2; /* isa nullable AExprs */ @@ -4033,26 +3926,26 @@ var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25358); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25842); +show_backtrace(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) { +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(cltype10 >= var_tassignnode4->type->table_size) { +if(cltype10 >= var_passignopnode4->type->table_size) { var9 = 0; } else { -var9 = var_tassignnode4->type->type_table[cltype10] == idtype11; +var9 = var_passignopnode4->type->type_table[cltype10] == idtype11; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25360); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25844); +show_backtrace(1); } var_pexprnode5 = var_nodearraylist4; /* isa nullable AExpr */ @@ -4069,165 +3962,129 @@ var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; } if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25362); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25846); +show_backtrace(1); } -var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr); -((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraAssignExpr__init_abraassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5) /* init_abraassignexpr on */; -CHECK_NEW_parser_nodes__ABraAssignExpr(var15); +var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr); +((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraReassignExpr__init_abrareassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5) /* init_abrareassignexpr on */; var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +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#ReduceAction666#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction666__action(val* self, val* p0) { -parser__ReduceAction666__action(self, p0); +/* method parser#ReduceAction687#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) { +parser__ReduceAction687__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */ -void parser__ReduceAction667__action(val* self, val* p0) { +/* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */ +void parser__ReduceAction688__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 */; +val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */; +short int var2 /* : Bool */; int cltype; int idtype; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_passignopnode4 /* var passignopnode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AAttrReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; -long var18 /* : Int */; -long var19 /* : Int */; +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 = ((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_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; +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 { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (!var7) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25385); -exit(1); -} -var_tattridnode3 = var_nodearraylist4; -/* isa nullable TAttrid */ -cltype9 = type_nullable_parser_nodes__TAttrid.color; -idtype10 = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { -var8 = 1; -} else { -if(cltype9 >= var_tattridnode3->type->table_size) { -var8 = 0; +if(cltype >= var_tpluseqnode2->type->table_size) { +var2 = 0; } else { -var8 = var_tattridnode3->type->type_table[cltype9] == idtype10; +var2 = var_tpluseqnode2->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var2) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25387); -exit(1); -} -var_passignopnode4 = var_nodearraylist5; -/* isa nullable AAssignOp */ -cltype12 = type_nullable_parser_nodes__AAssignOp.color; -idtype13 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode4 == NULL) { -var11 = 1; -} else { -if(cltype12 >= var_passignopnode4->type->table_size) { -var11 = 0; -} else { -var11 = var_passignopnode4->type->type_table[cltype12] == idtype13; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25864); +show_backtrace(1); } +var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp); +((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on */; +var_passignopnode1 = var3; +var_node_list = var_passignopnode1; +var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on */; +RET_LABEL:; } -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25389); -exit(1); +/* method parser#ReduceAction688#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) { +parser__ReduceAction688__action(self, p0); +RET_LABEL:; } -var_pexprnode5 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype15 = type_nullable_parser_nodes__AExpr.color; -idtype16 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var14 = 1; +/* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */ +void parser__ReduceAction689__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_tminuseqnode2 /* var tminuseqnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +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_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(cltype15 >= var_pexprnode5->type->table_size) { -var14 = 0; +if(cltype >= var_tminuseqnode2->type->table_size) { +var2 = 0; } else { -var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; +var2 = var_tminuseqnode2->type->type_table[cltype] == idtype; } } -if (!var14) { +if (!var2) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25391); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25879); +show_backtrace(1); } -var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var17); -var_pexprnode1 = var17; -var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on */; +var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp); +((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on */; +var_passignopnode1 = var3; +var_node_list = var_passignopnode1; +var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction667#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) { -parser__ReduceAction667__action(self, p0); +/* method parser#ReduceAction689#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) { +parser__ReduceAction689__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */ -void parser__ReduceAction668__action(val* self, val* p0) { +/* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */ +void parser__ReduceAction690__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4237,24 +4094,22 @@ 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_tattridnode3 /* var tattridnode3: nullable Object */; -short int var5 /* : Bool */; +val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_passignopnode4 /* var passignopnode4: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : AAttrReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +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 */; -long var14 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -4264,224 +4119,156 @@ var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; var_nodearraylist1 = var3; -var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4); -var_pexprnode2 = var4; -var_tattridnode3 = var_nodearraylist1; -/* isa nullable TAttrid */ -cltype = type_nullable_parser_nodes__TAttrid.color; -idtype = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { -var5 = 1; +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(cltype >= var_tattridnode3->type->table_size) { -var5 = 0; +if(cltype >= var_tkwdonode2->type->table_size) { +var4 = 0; } else { -var5 = var_tattridnode3->type->type_table[cltype] == idtype; +var4 = var_tkwdonode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25412); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25896); +show_backtrace(1); } -var_passignopnode4 = var_nodearraylist2; -/* isa nullable AAssignOp */ -cltype7 = type_nullable_parser_nodes__AAssignOp.color; -idtype8 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode4 == NULL) { -var6 = 1; +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(cltype7 >= var_passignopnode4->type->table_size) { -var6 = 0; +if(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; } else { -var6 = var_passignopnode4->type->type_table[cltype7] == idtype8; +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; } } -if (!var6) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25414); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25898); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype10 = type_nullable_parser_nodes__AExpr.color; -idtype11 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var9 = 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(cltype10 >= var_pexprnode5->type->table_size) { -var9 = 0; +if(cltype9 >= var_plabelnode4->type->table_size) { +var8 = 0; } else { -var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; +var8 = var_plabelnode4->type->type_table[cltype9] == idtype10; } } -if (!var9) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25416); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25900); +show_backtrace(1); } -var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var12); -var_pexprnode1 = var12; +var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr); +((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4) /* init_adoexpr on */; +var_pexprnode1 = var11; var_node_list = var_pexprnode1; -var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; +var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction668#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) { -parser__ReduceAction668__action(self, p0); +/* method parser#ReduceAction690#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) { +parser__ReduceAction690__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction669#action for (self: ReduceAction669, Parser) */ -void parser__ReduceAction669__action(val* self, val* p0) { +/* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */ +void parser__ReduceAction691__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* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -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_nodearraylist7 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_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 (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25440); -exit(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(cltype10 >= var_tattridnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25442); -exit(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; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : ADoExpr */; +val* var8 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var2; +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) { +var3 = 1; } else { -if(cltype13 >= var_passignopnode4->type->table_size) { -var12 = 0; +if(cltype >= var_tkwdonode2->type->table_size) { +var3 = 0; } else { -var12 = var_passignopnode4->type->type_table[cltype13] == idtype14; +var3 = var_tkwdonode2->type->type_table[cltype] == idtype; } } -if (!var12) { +if (!var3) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25444); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25918); +show_backtrace(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; +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(cltype16 >= var_pexprnode5->type->table_size) { -var15 = 0; +if(cltype5 >= var_pexprnode3->type->table_size) { +var4 = 0; } else { -var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; +var4 = var_pexprnode3->type->type_table[cltype5] == idtype6; } } -if (!var15) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25446); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25920); +show_backtrace(1); } -var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var18); -var_pexprnode1 = var18; +var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr); +var8 = NULL; +((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var7, var_tkwdonode2, var_pexprnode3, var8) /* init_adoexpr on */; +var_pexprnode1 = var7; var_node_list = var_pexprnode1; -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 */; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction669#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction669__action(val* self, val* p0) { -parser__ReduceAction669__action(self, p0); +/* method parser#ReduceAction691#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) { +parser__ReduceAction691__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */ -void parser__ReduceAction670__action(val* self, val* p0) { +/* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */ +void parser__ReduceAction692__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4501,15 +4288,15 @@ val* var7 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var8 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; short int var9 /* : Bool */; int cltype; int idtype; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var10 /* : Bool */; int cltype11; int idtype12; -val* var_passignopnode4 /* var passignopnode4: nullable Object */; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; @@ -4517,8 +4304,8 @@ val* var_pexprnode5 /* var pexprnode5: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var19 /* : AAttrReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; +val* var19 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; long var20 /* : Int */; long var21 /* : Int */; var_p = p0; @@ -4540,59 +4327,59 @@ var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var7; var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; 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) { +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable_parser_nodes__TKwif.color; +idtype = type_nullable_parser_nodes__TKwif.id; +if(var_tkwifnode2 == NULL) { var9 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= var_tkwifnode2->type->table_size) { var9 = 0; } else { -var9 = var_pexprnode2->type->type_table[cltype] == idtype; +var9 = var_tkwifnode2->type->type_table[cltype] == idtype; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25471); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25944); +show_backtrace(1); } -var_tattridnode3 = var_nodearraylist6; -/* isa nullable TAttrid */ -cltype11 = type_nullable_parser_nodes__TAttrid.color; -idtype12 = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype11 = type_nullable_parser_nodes__AExpr.color; +idtype12 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { var10 = 1; } else { -if(cltype11 >= var_tattridnode3->type->table_size) { +if(cltype11 >= var_pexprnode3->type->table_size) { var10 = 0; } else { -var10 = var_tattridnode3->type->type_table[cltype11] == idtype12; +var10 = var_pexprnode3->type->type_table[cltype11] == idtype12; } } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25473); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25946); +show_backtrace(1); } -var_passignopnode4 = var_nodearraylist7; -/* isa nullable AAssignOp */ -cltype14 = type_nullable_parser_nodes__AAssignOp.color; -idtype15 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode4 == NULL) { +var_pexprnode4 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype14 = type_nullable_parser_nodes__AExpr.color; +idtype15 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { var13 = 1; } else { -if(cltype14 >= var_passignopnode4->type->table_size) { +if(cltype14 >= var_pexprnode4->type->table_size) { var13 = 0; } else { -var13 = var_passignopnode4->type->type_table[cltype14] == idtype15; +var13 = var_pexprnode4->type->type_table[cltype14] == idtype15; } } if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25475); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25948); +show_backtrace(1); } var_pexprnode5 = var_nodearraylist8; /* isa nullable AExpr */ @@ -4609,161 +4396,309 @@ var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; } if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25477); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25950); +show_backtrace(1); } -var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var19); +var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); +((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on */; var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction670#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) { -parser__ReduceAction670__action(self, p0); +/* method parser#ReduceAction692#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) { +parser__ReduceAction692__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */ -void parser__ReduceAction672__action(val* self, val* p0) { +/* method parser#ReduceAction693#action for (self: ReduceAction693, Parser) */ +void parser__ReduceAction693__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_passignopnode4 /* var passignopnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : AAttrReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */; -long var14 /* : Int */; -long var15 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AIfExpr */; +val* var15 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +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_nodearraylist4 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5); -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) { -var6 = 1; +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_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable_parser_nodes__TKwif.color; +idtype = type_nullable_parser_nodes__TKwif.id; +if(var_tkwifnode2 == NULL) { +var7 = 1; } else { -if(cltype >= var_tattridnode3->type->table_size) { -var6 = 0; +if(cltype >= var_tkwifnode2->type->table_size) { +var7 = 0; } else { -var6 = var_tattridnode3->type->type_table[cltype] == idtype; +var7 = var_tkwifnode2->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25499); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25973); +show_backtrace(1); } -var_passignopnode4 = var_nodearraylist3; -/* isa nullable AAssignOp */ -cltype8 = type_nullable_parser_nodes__AAssignOp.color; -idtype9 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode4 == NULL) { -var7 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable_parser_nodes__AExpr.color; +idtype10 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var8 = 1; } else { -if(cltype8 >= var_passignopnode4->type->table_size) { -var7 = 0; +if(cltype9 >= var_pexprnode3->type->table_size) { +var8 = 0; } else { -var7 = var_passignopnode4->type->type_table[cltype8] == idtype9; +var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; } } -if (!var7) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25501); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25975); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist4; -/* isa nullable AExpr */ +var_pexprnode4 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype12 = type_nullable_parser_nodes__AExpr.color; +idtype13 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_pexprnode4->type->table_size) { +var11 = 0; +} else { +var11 = var_pexprnode4->type->type_table[cltype12] == idtype13; +} +} +if (!var11) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25977); +show_backtrace(1); +} +var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); +var15 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15) /* init_aifexpr on */; +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +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#ReduceAction693#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction693__action(val* self, val* p0) { +parser__ReduceAction693__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction694#action for (self: ReduceAction694, Parser) */ +void parser__ReduceAction694__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; +short int var9 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +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_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; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable_parser_nodes__TKwif.color; +idtype = type_nullable_parser_nodes__TKwif.id; +if(var_tkwifnode2 == NULL) { +var9 = 1; +} else { +if(cltype >= var_tkwifnode2->type->table_size) { +var9 = 0; +} else { +var9 = var_tkwifnode2->type->type_table[cltype] == idtype; +} +} +if (!var9) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26002); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ cltype11 = type_nullable_parser_nodes__AExpr.color; idtype12 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { +if(var_pexprnode3 == NULL) { var10 = 1; } else { -if(cltype11 >= var_pexprnode5->type->table_size) { +if(cltype11 >= var_pexprnode3->type->table_size) { var10 = 0; } else { -var10 = var_pexprnode5->type->type_table[cltype11] == idtype12; +var10 = var_pexprnode3->type->type_table[cltype11] == idtype12; } } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25503); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26004); +show_backtrace(1); } -var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var13); -var_pexprnode1 = var13; +var_pexprnode4 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype14 = type_nullable_parser_nodes__AExpr.color; +idtype15 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { +var13 = 1; +} else { +if(cltype14 >= var_pexprnode4->type->table_size) { +var13 = 0; +} else { +var13 = var_pexprnode4->type->type_table[cltype14] == idtype15; +} +} +if (!var13) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26006); +show_backtrace(1); +} +var_pexprnode5 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype17 = type_nullable_parser_nodes__AExpr.color; +idtype18 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= var_pexprnode5->type->table_size) { +var16 = 0; +} else { +var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; +} +} +if (!var16) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26008); +show_backtrace(1); +} +var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); +((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on */; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction672#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) { -parser__ReduceAction672__action(self, p0); +/* method parser#ReduceAction694#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction694__action(val* self, val* p0) { +parser__ReduceAction694__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */ -void parser__ReduceAction673__action(val* self, val* p0) { +/* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */ +void parser__ReduceAction695__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var6 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; short int var7 /* : Bool */; int cltype; int idtype; -val* var_passignopnode4 /* var passignopnode4: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; @@ -4771,64 +4706,63 @@ 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 */; +val* var14 /* : AIfExpr */; +val* var15 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; 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_nodearraylist5 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; +var_nodearraylist3 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6); -var_pexprnode2 = var6; -var_tattridnode3 = var_nodearraylist3; -/* isa nullable TAttrid */ -cltype = type_nullable_parser_nodes__TAttrid.color; -idtype = type_nullable_parser_nodes__TAttrid.id; -if(var_tattridnode3 == NULL) { +var_nodearraylist2 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var6; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable_parser_nodes__TKwif.color; +idtype = type_nullable_parser_nodes__TKwif.id; +if(var_tkwifnode2 == NULL) { var7 = 1; } else { -if(cltype >= var_tattridnode3->type->table_size) { +if(cltype >= var_tkwifnode2->type->table_size) { var7 = 0; } else { -var7 = var_tattridnode3->type->type_table[cltype] == idtype; +var7 = var_tkwifnode2->type->type_table[cltype] == idtype; } } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25526); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26031); +show_backtrace(1); } -var_passignopnode4 = var_nodearraylist4; -/* isa nullable AAssignOp */ -cltype9 = type_nullable_parser_nodes__AAssignOp.color; -idtype10 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode4 == NULL) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable_parser_nodes__AExpr.color; +idtype10 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_passignopnode4->type->table_size) { +if(cltype9 >= var_pexprnode3->type->table_size) { var8 = 0; } else { -var8 = var_passignopnode4->type->type_table[cltype9] == idtype10; +var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; } } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25528); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26033); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist5; +var_pexprnode5 = var_nodearraylist6; /* isa nullable AExpr */ cltype12 = type_nullable_parser_nodes__AExpr.color; idtype13 = type_nullable_parser_nodes__AExpr.id; @@ -4843,26 +4777,26 @@ var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; } if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25530); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26035); +show_backtrace(1); } -var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on */; -CHECK_NEW_parser_nodes__AAttrReassignExpr(var14); -var_pexprnode1 = var14; -var_node_list = var_pexprnode1; -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 */; +var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); +var15 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var15, var_pexprnode5) /* init_aifexpr on */; +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +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#ReduceAction673#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) { -parser__ReduceAction673__action(self, p0); +/* method parser#ReduceAction695#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) { +parser__ReduceAction695__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction675#action for (self: ReduceAction675, Parser) */ -void parser__ReduceAction675__action(val* self, val* p0) { +/* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */ +void parser__ReduceAction696__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -4880,30 +4814,23 @@ 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 */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode5 /* var pexprnode5: 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 */; +val* var15 /* : AIfExpr */; +val* var16 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -4921,3280 +4848,2914 @@ var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var6; var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; 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) { +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable_parser_nodes__TKwif.color; +idtype = type_nullable_parser_nodes__TKwif.id; +if(var_tkwifnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= var_tkwifnode2->type->table_size) { var8 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = var_tkwifnode2->type->type_table[cltype] == idtype; } } if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25554); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26059); +show_backtrace(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) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { +if(cltype10 >= var_pexprnode3->type->table_size) { var9 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var9 = var_pexprnode3->type->type_table[cltype10] == idtype11; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25556); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26061); +show_backtrace(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) { +var_pexprnode5 = var_nodearraylist7; +/* 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(cltype13 >= var_pexprsnode4->type->table_size) { +if(cltype13 >= var_pexprnode5->type->table_size) { var12 = 0; } else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; } } if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25558); -exit(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(cltype16 >= var_passignopnode5->type->table_size) { -var15 = 0; -} else { -var15 = var_passignopnode5->type->type_table[cltype16] == idtype17; -} -} -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25560); -exit(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(cltype19 >= var_pexprnode6->type->table_size) { -var18 = 0; -} else { -var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; -} -} -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25562); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26063); +show_backtrace(1); } -var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var21); -var_pexprnode1 = var21; +var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); +var16 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var15, var_tkwifnode2, var_pexprnode3, var16, var_pexprnode5) /* init_aifexpr on */; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; +var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction675#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction675__action(val* self, val* p0) { -parser__ReduceAction675__action(self, p0); +/* method parser#ReduceAction696#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) { +parser__ReduceAction696__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */ -void parser__ReduceAction676__action(val* self, val* p0) { +/* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */ +void parser__ReduceAction699__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_passignopnode5 /* var passignopnode5: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_pexprnode6 /* var pexprnode6: 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 */; +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 /* : ALoopExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; +long var12 /* : Int */; +long var13 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5); -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) { -var6 = 1; +var_nodearraylist1 = var3; +var_tkwloopnode2 = var_nodearraylist1; +/* isa nullable TKwloop */ +cltype = type_nullable_parser_nodes__TKwloop.color; +idtype = type_nullable_parser_nodes__TKwloop.id; +if(var_tkwloopnode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var6 = 0; +if(cltype >= var_tkwloopnode2->type->table_size) { +var4 = 0; } else { -var6 = var_tidnode3->type->type_table[cltype] == idtype; +var4 = var_tkwloopnode2->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25585); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26083); +show_backtrace(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype8 = type_nullable_parser_nodes__AExprs.color; -idtype9 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode4 == NULL) { -var7 = 1; +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(cltype8 >= var_pexprsnode4->type->table_size) { -var7 = 0; +if(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; } else { -var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; } } -if (!var7) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25587); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26085); +show_backtrace(1); } -var_passignopnode5 = var_nodearraylist3; -/* isa nullable AAssignOp */ -cltype11 = type_nullable_parser_nodes__AAssignOp.color; -idtype12 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var10 = 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(cltype11 >= var_passignopnode5->type->table_size) { -var10 = 0; +if(cltype9 >= var_plabelnode4->type->table_size) { +var8 = 0; } else { -var10 = var_passignopnode5->type->type_table[cltype11] == idtype12; +var8 = var_plabelnode4->type->type_table[cltype9] == idtype10; } } -if (!var10) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25589); -exit(1); -} -var_pexprnode6 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype14 = type_nullable_parser_nodes__AExpr.color; -idtype15 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode6 == NULL) { -var13 = 1; -} else { -if(cltype14 >= var_pexprnode6->type->table_size) { -var13 = 0; -} else { -var13 = var_pexprnode6->type->type_table[cltype14] == idtype15; -} +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26087); +show_backtrace(1); } -if (!var13) { +var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr); +((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var11, var_tkwloopnode2, var_pexprnode3, var_plabelnode4) /* init_aloopexpr on */; +var_pexprnode1 = var11; +var_node_list = var_pexprnode1; +var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction699#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) { +parser__ReduceAction699__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction700#action for (self: ReduceAction700, Parser) */ +void parser__ReduceAction700__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_tkwloopnode2 /* var tkwloopnode2: 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 /* : ALoopExpr */; +val* var8 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var2; +var_tkwloopnode2 = var_nodearraylist1; +/* isa nullable TKwloop */ +cltype = type_nullable_parser_nodes__TKwloop.color; +idtype = type_nullable_parser_nodes__TKwloop.id; +if(var_tkwloopnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwloopnode2->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwloopnode2->type->type_table[cltype] == idtype; +} +} +if (!var3) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25591); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26105); +show_backtrace(1); } -var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var16); -var_pexprnode1 = var16; +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 (!var4) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26107); +show_backtrace(1); +} +var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr); +var8 = NULL; +((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var7, var_tkwloopnode2, var_pexprnode3, var8) /* init_aloopexpr on */; +var_pexprnode1 = var7; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction676#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) { -parser__ReduceAction676__action(self, p0); +/* method parser#ReduceAction700#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction700__action(val* self, val* p0) { +parser__ReduceAction700__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */ -void parser__ReduceAction677__action(val* self, val* p0) { +/* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */ +void parser__ReduceAction701__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* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var9 /* : Bool */; +val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -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 */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tkwdonode4 /* var tkwdonode4: 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* var_plabelnode6 /* var plabelnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : AWhileExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; +long var22 /* : Int */; 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_nodearraylist8 = var1; +var_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; +var_nodearraylist5 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; +var_nodearraylist4 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; +var_nodearraylist3 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; +var_nodearraylist2 = 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; -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) { +var_nodearraylist1 = var7; +var_tkwwhilenode2 = var_nodearraylist1; +/* isa nullable TKwwhile */ +cltype = type_nullable_parser_nodes__TKwwhile.color; +idtype = type_nullable_parser_nodes__TKwwhile.id; +if(var_tkwwhilenode2 == NULL) { +var8 = 1; +} else { +if(cltype >= var_tkwwhilenode2->type->table_size) { +var8 = 0; +} else { +var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype; +} +} +if (!var8) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26130); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { var9 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype10 >= var_pexprnode3->type->table_size) { var9 = 0; } else { -var9 = var_pexprnode2->type->type_table[cltype] == idtype; +var9 = var_pexprnode3->type->type_table[cltype10] == idtype11; } } if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25617); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26132); +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; +var_tkwdonode4 = var_nodearraylist5; +/* isa nullable TKwdo */ +cltype13 = type_nullable_parser_nodes__TKwdo.color; +idtype14 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode4 == NULL) { +var12 = 1; } else { -if(cltype11 >= var_tidnode3->type->table_size) { -var10 = 0; +if(cltype13 >= var_tkwdonode4->type->table_size) { +var12 = 0; } else { -var10 = var_tidnode3->type->type_table[cltype11] == idtype12; +var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14; } } -if (!var10) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25619); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26134); +show_backtrace(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; +var_pexprnode5 = var_nodearraylist6; +/* 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(cltype14 >= var_pexprsnode4->type->table_size) { -var13 = 0; +if(cltype16 >= var_pexprnode5->type->table_size) { +var15 = 0; } else { -var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; +var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; } } -if (!var13) { +if (!var15) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25621); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26136); +show_backtrace(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; +var_plabelnode6 = var_nodearraylist7; +/* isa nullable ALabel */ +cltype19 = type_nullable_parser_nodes__ALabel.color; +idtype20 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode6 == NULL) { +var18 = 1; } else { -if(cltype17 >= var_passignopnode5->type->table_size) { -var16 = 0; +if(cltype19 >= var_plabelnode6->type->table_size) { +var18 = 0; } else { -var16 = var_passignopnode5->type->type_table[cltype17] == idtype18; +var18 = var_plabelnode6->type->type_table[cltype19] == idtype20; } } -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25623); -exit(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(cltype20 >= var_pexprnode6->type->table_size) { -var19 = 0; -} else { -var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; -} -} -if (!var19) { +if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25625); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26138); +show_backtrace(1); } -var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var22); -var_pexprnode1 = var22; +var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr); +((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var21, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6) /* init_awhileexpr on */; +var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on */; +var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction677#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) { -parser__ReduceAction677__action(self, p0); +/* method parser#ReduceAction701#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) { +parser__ReduceAction701__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction678#action for (self: ReduceAction678, Parser) */ -void parser__ReduceAction678__action(val* self, val* p0) { +/* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */ +void parser__ReduceAction702__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* var2 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var10 /* : Bool */; +val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_tkwdonode4 /* var tkwdonode4: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_passignopnode5 /* var passignopnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var23 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; -long var24 /* : Int */; -long var25 /* : Int */; +val* var17 /* : AWhileExpr */; +val* var18 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; +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; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var4; +var_nodearraylist3 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var5; +var_nodearraylist2 = 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; -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_pexprnode2->type->table_size) { -var10 = 0; -} else { -var10 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (!var10) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25652); -exit(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; +var_nodearraylist1 = var6; +var_tkwwhilenode2 = var_nodearraylist1; +/* isa nullable TKwwhile */ +cltype = type_nullable_parser_nodes__TKwwhile.color; +idtype = type_nullable_parser_nodes__TKwwhile.id; +if(var_tkwwhilenode2 == NULL) { +var7 = 1; } else { -if(cltype12 >= var_tidnode3->type->table_size) { -var11 = 0; +if(cltype >= var_tkwwhilenode2->type->table_size) { +var7 = 0; } else { -var11 = var_tidnode3->type->type_table[cltype12] == idtype13; +var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype; } } -if (!var11) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25654); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26162); +show_backtrace(1); } -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; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable_parser_nodes__AExpr.color; +idtype10 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var8 = 1; } else { -if(cltype15 >= var_pexprsnode4->type->table_size) { -var14 = 0; +if(cltype9 >= var_pexprnode3->type->table_size) { +var8 = 0; } else { -var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16; +var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; } } -if (!var14) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25656); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26164); +show_backtrace(1); } -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; +var_tkwdonode4 = var_nodearraylist5; +/* isa nullable TKwdo */ +cltype12 = type_nullable_parser_nodes__TKwdo.color; +idtype13 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode4 == NULL) { +var11 = 1; } else { -if(cltype18 >= var_passignopnode5->type->table_size) { -var17 = 0; +if(cltype12 >= var_tkwdonode4->type->table_size) { +var11 = 0; } else { -var17 = var_passignopnode5->type->type_table[cltype18] == idtype19; +var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13; } } -if (!var17) { +if (!var11) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25658); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26166); +show_backtrace(1); } -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; +var_pexprnode5 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype15 = type_nullable_parser_nodes__AExpr.color; +idtype16 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var14 = 1; } else { -if(cltype21 >= var_pexprnode6->type->table_size) { -var20 = 0; +if(cltype15 >= var_pexprnode5->type->table_size) { +var14 = 0; } else { -var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; +var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; } } -if (!var20) { +if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25660); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26168); +show_backtrace(1); } -var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var23); -var_pexprnode1 = var23; +var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr); +var18 = NULL; +((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var17, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var18) /* init_awhileexpr on */; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on */; +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#ReduceAction678#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction678__action(val* self, val* p0) { -parser__ReduceAction678__action(self, p0); +/* method parser#ReduceAction702#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) { +parser__ReduceAction702__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */ -void parser__ReduceAction680__action(val* self, val* p0) { +/* method parser#ReduceAction703#action for (self: ReduceAction703, Parser) */ +void parser__ReduceAction703__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist15 /* var nodearraylist15: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist14 /* var nodearraylist14: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist13 /* var nodearraylist13: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist12 /* var nodearraylist12: nullable Object */; val* var5 /* : nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var11 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var12 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var13 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var14 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var15 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var7 /* : Bool */; +val* var16 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; +short int var17 /* : Bool */; int cltype; int idtype; -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 */; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : Array[Object] */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +val* var_plabelnode8 /* var plabelnode8: nullable Object */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +val* var34 /* : AForExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var35 /* : Int */; +long var36 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var1; +var_nodearraylist15 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist14 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist13 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; +var_nodearraylist12 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6); -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) { -var7 = 1; +var_nodearraylist11 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist10 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist9 = var7; +var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist8 = var8; +var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist7 = var9; +var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist6 = var10; +var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist5 = var11; +var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var12; +var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var13; +var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var14; +var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var15; +var16 = NEW_array__Array(&type_array__Arraykernel__Object); +((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; +var_listnode4 = var16; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable_parser_nodes__TKwfor.color; +idtype = type_nullable_parser_nodes__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var17 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype >= var_tkwfornode2->type->table_size) { +var17 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var17 = var_tkwfornode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var17) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25684); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26202); +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; +var_listnode3 = var_nodearraylist5; +/* isa Array[Object] */ +cltype19 = type_array__Arraykernel__Object.color; +idtype20 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var18 = 0; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { -var8 = 0; +if(cltype19 >= var_listnode3->type->table_size) { +var18 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var18 = var_listnode3->type->type_table[cltype19] == idtype20; } } -if (!var8) { +if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25686); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26204); +show_backtrace(1); } -var_passignopnode5 = var_nodearraylist4; -/* isa nullable AAssignOp */ -cltype12 = type_nullable_parser_nodes__AAssignOp.color; -idtype13 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var11 = 1; +var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; +var_listnode4 = var21; +var_pexprnode5 = var_nodearraylist11; +/* isa nullable AExpr */ +cltype23 = type_nullable_parser_nodes__AExpr.color; +idtype24 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var22 = 1; } else { -if(cltype12 >= var_passignopnode5->type->table_size) { -var11 = 0; +if(cltype23 >= var_pexprnode5->type->table_size) { +var22 = 0; } else { -var11 = var_passignopnode5->type->type_table[cltype12] == idtype13; +var22 = var_pexprnode5->type->type_table[cltype23] == idtype24; } } -if (!var11) { +if (!var22) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25688); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26207); +show_backtrace(1); } -var_pexprnode6 = var_nodearraylist5; -/* isa nullable AExpr */ -cltype15 = type_nullable_parser_nodes__AExpr.color; -idtype16 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode6 == NULL) { -var14 = 1; +var_tkwdonode6 = var_nodearraylist13; +/* isa nullable TKwdo */ +cltype26 = type_nullable_parser_nodes__TKwdo.color; +idtype27 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode6 == NULL) { +var25 = 1; } else { -if(cltype15 >= var_pexprnode6->type->table_size) { -var14 = 0; +if(cltype26 >= var_tkwdonode6->type->table_size) { +var25 = 0; } else { -var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; +var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27; } } -if (!var14) { +if (!var25) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25690); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26209); +show_backtrace(1); } -var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var17); -var_pexprnode1 = var17; +var_pexprnode7 = var_nodearraylist14; +/* isa nullable AExpr */ +cltype29 = type_nullable_parser_nodes__AExpr.color; +idtype30 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var28 = 1; +} else { +if(cltype29 >= var_pexprnode7->type->table_size) { +var28 = 0; +} else { +var28 = var_pexprnode7->type->type_table[cltype29] == idtype30; +} +} +if (!var28) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26211); +show_backtrace(1); +} +var_plabelnode8 = var_nodearraylist15; +/* isa nullable ALabel */ +cltype32 = type_nullable_parser_nodes__ALabel.color; +idtype33 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode8 == NULL) { +var31 = 1; +} else { +if(cltype32 >= var_plabelnode8->type->table_size) { +var31 = 0; +} else { +var31 = var_plabelnode8->type->type_table[cltype32] == idtype33; +} +} +if (!var31) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26213); +show_backtrace(1); +} +var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var34, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on */; +var_pexprnode1 = var34; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction680#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) { -parser__ReduceAction680__action(self, p0); +/* method parser#ReduceAction703#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction703__action(val* self, val* p0) { +parser__ReduceAction703__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */ -void parser__ReduceAction681__action(val* self, val* p0) { +/* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */ +void parser__ReduceAction704__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var6 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var7 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var8 /* : Bool */; +val* var12 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; +short int var13 /* : Bool */; int cltype; int idtype; -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_nodearraylist6 = var1; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : Array[Object] */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_plabelnode8 /* var plabelnode8: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var30 /* : AForExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var31 /* : Int */; +long var32 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist11 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; +var_nodearraylist10 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; +var_nodearraylist9 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var4; +var_nodearraylist8 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var5; +var_nodearraylist7 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var6; -var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); -((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on */; -CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7); -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) { -var8 = 1; +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 */; +var_listnode4 = var12; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable_parser_nodes__TKwfor.color; +idtype = type_nullable_parser_nodes__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var13 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype >= var_tkwfornode2->type->table_size) { +var13 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype] == idtype; +var13 = var_tkwfornode2->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25715); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26244); +show_backtrace(1); } -var_pexprsnode4 = var_nodearraylist4; -/* isa nullable AExprs */ -cltype10 = type_nullable_parser_nodes__AExprs.color; -idtype11 = type_nullable_parser_nodes__AExprs.id; -if(var_pexprsnode4 == NULL) { -var9 = 1; +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ +cltype15 = type_array__Arraykernel__Object.color; +idtype16 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var14 = 0; } else { -if(cltype10 >= var_pexprsnode4->type->table_size) { -var9 = 0; +if(cltype15 >= var_listnode3->type->table_size) { +var14 = 0; } else { -var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; +var14 = var_listnode3->type->type_table[cltype15] == idtype16; } } -if (!var9) { +if (!var14) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25717); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26246); +show_backtrace(1); } -var_passignopnode5 = var_nodearraylist5; -/* isa nullable AAssignOp */ -cltype13 = type_nullable_parser_nodes__AAssignOp.color; -idtype14 = type_nullable_parser_nodes__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var12 = 1; +var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; +var_listnode4 = var17; +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype19 = type_nullable_parser_nodes__AExpr.color; +idtype20 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var18 = 1; } else { -if(cltype13 >= var_passignopnode5->type->table_size) { -var12 = 0; +if(cltype19 >= var_pexprnode5->type->table_size) { +var18 = 0; } else { -var12 = var_passignopnode5->type->type_table[cltype13] == idtype14; +var18 = var_pexprnode5->type->type_table[cltype19] == idtype20; } } -if (!var12) { +if (!var18) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25719); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26249); +show_backtrace(1); } -var_pexprnode6 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype16 = type_nullable_parser_nodes__AExpr.color; -idtype17 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode6 == NULL) { -var15 = 1; +var_tkwdonode6 = var_nodearraylist9; +/* isa nullable TKwdo */ +cltype22 = type_nullable_parser_nodes__TKwdo.color; +idtype23 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode6 == NULL) { +var21 = 1; } else { -if(cltype16 >= var_pexprnode6->type->table_size) { -var15 = 0; +if(cltype22 >= var_tkwdonode6->type->table_size) { +var21 = 0; } else { -var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; +var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23; } } -if (!var15) { +if (!var21) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25721); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26251); +show_backtrace(1); } -var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on */; -CHECK_NEW_parser_nodes__ACallReassignExpr(var18); -var_pexprnode1 = var18; +var_pexprnode7 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype25 = type_nullable_parser_nodes__AExpr.color; +idtype26 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var24 = 1; +} else { +if(cltype25 >= var_pexprnode7->type->table_size) { +var24 = 0; +} else { +var24 = var_pexprnode7->type->type_table[cltype25] == idtype26; +} +} +if (!var24) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26253); +show_backtrace(1); +} +var_plabelnode8 = var_nodearraylist11; +/* isa nullable ALabel */ +cltype28 = type_nullable_parser_nodes__ALabel.color; +idtype29 = type_nullable_parser_nodes__ALabel.id; +if(var_plabelnode8 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_plabelnode8->type->table_size) { +var27 = 0; +} else { +var27 = var_plabelnode8->type->type_table[cltype28] == idtype29; +} +} +if (!var27) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26255); +show_backtrace(1); +} +var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on */; +var_pexprnode1 = var30; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction681#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) { -parser__ReduceAction681__action(self, p0); +/* method parser#ReduceAction704#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) { +parser__ReduceAction704__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction683#action for (self: ReduceAction683, Parser) */ -void parser__ReduceAction683__action(val* self, val* p0) { +/* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */ +void parser__ReduceAction705__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist14 /* var nodearraylist14: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist13 /* var nodearraylist13: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist12 /* var nodearraylist12: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var11 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var12 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var13 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var14 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +val* var15 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; +short int var16 /* : Bool */; int cltype; int idtype; -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_listnode3 /* var listnode3: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : Array[Object] */; 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 */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +val* var30 /* : AForExpr */; +val* var31 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var32 /* : Int */; +long var33 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist14 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist13 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist12 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +var_nodearraylist11 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist10 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist9 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist8 = var7; +var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist7 = var8; +var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist6 = var9; +var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist5 = var10; +var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var11; +var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var12; +var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var13; +var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var14; +var15 = NEW_array__Array(&type_array__Arraykernel__Object); +((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on */; +var_listnode4 = var15; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable_parser_nodes__TKwfor.color; +idtype = type_nullable_parser_nodes__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var16 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +if(cltype >= var_tkwfornode2->type->table_size) { +var16 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var16 = var_tkwfornode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25743); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26289); +show_backtrace(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; +var_listnode3 = var_nodearraylist5; +/* isa Array[Object] */ +cltype18 = type_array__Arraykernel__Object.color; +idtype19 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var17 = 0; } else { -if(cltype7 >= var_pexprsnode3->type->table_size) { -var6 = 0; +if(cltype18 >= var_listnode3->type->table_size) { +var17 = 0; } else { -var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; +var17 = var_listnode3->type->type_table[cltype18] == idtype19; } } -if (!var6) { +if (!var17) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25745); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26291); +show_backtrace(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; +var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; +var_listnode4 = var20; +var_pexprnode5 = var_nodearraylist11; +/* isa nullable AExpr */ +cltype22 = type_nullable_parser_nodes__AExpr.color; +idtype23 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var21 = 1; } else { -if(cltype10 >= var_passignopnode4->type->table_size) { -var9 = 0; +if(cltype22 >= var_pexprnode5->type->table_size) { +var21 = 0; } else { -var9 = var_passignopnode4->type->type_table[cltype10] == idtype11; +var21 = var_pexprnode5->type->type_table[cltype22] == idtype23; } } -if (!var9) { +if (!var21) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25747); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26294); +show_backtrace(1); } -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; +var_tkwdonode6 = var_nodearraylist13; +/* isa nullable TKwdo */ +cltype25 = type_nullable_parser_nodes__TKwdo.color; +idtype26 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode6 == NULL) { +var24 = 1; } else { -if(cltype13 >= var_pexprnode5->type->table_size) { -var12 = 0; +if(cltype25 >= var_tkwdonode6->type->table_size) { +var24 = 0; } else { -var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; +var24 = var_tkwdonode6->type->type_table[cltype25] == idtype26; } } -if (!var12) { +if (!var24) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25749); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26296); +show_backtrace(1); } -var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr); -((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraReassignExpr__init_abrareassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5) /* init_abrareassignexpr on */; -CHECK_NEW_parser_nodes__ABraReassignExpr(var15); -var_pexprnode1 = var15; +var_pexprnode7 = var_nodearraylist14; +/* isa nullable AExpr */ +cltype28 = type_nullable_parser_nodes__AExpr.color; +idtype29 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var27 = 1; +} else { +if(cltype28 >= var_pexprnode7->type->table_size) { +var27 = 0; +} else { +var27 = var_pexprnode7->type->type_table[cltype28] == idtype29; +} +} +if (!var27) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26298); +show_backtrace(1); +} +var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); +var31 = NULL; +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var31) /* init_aforexpr on */; +var_pexprnode1 = var30; var_node_list = var_pexprnode1; -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 */; +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#ReduceAction683#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction683__action(val* self, val* p0) { -parser__ReduceAction683__action(self, p0); +/* method parser#ReduceAction705#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) { +parser__ReduceAction705__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */ -void parser__ReduceAction684__action(val* self, val* p0) { +/* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */ +void parser__ReduceAction706__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var10 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */; -short int var2 /* : Bool */; +val* var11 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; +short int var12 /* : Bool */; int cltype; int idtype; -val* var3 /* : APlusAssignOp */; -val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */; -long var4 /* : Int */; -long var5 /* : Int */; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : Array[Object] */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var26 /* : AForExpr */; +val* var27 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var28 /* : Int */; +long var29 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var1; -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; +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 */; +var_listnode4 = var11; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable_parser_nodes__TKwfor.color; +idtype = type_nullable_parser_nodes__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var12 = 1; } else { -if(cltype >= var_tpluseqnode2->type->table_size) { -var2 = 0; +if(cltype >= var_tkwfornode2->type->table_size) { +var12 = 0; } else { -var2 = var_tpluseqnode2->type->type_table[cltype] == idtype; +var12 = var_tkwfornode2->type->type_table[cltype] == idtype; } } -if (!var2) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25767); -exit(1); -} -var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp); -((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on */; -CHECK_NEW_parser_nodes__APlusAssignOp(var3); -var_passignopnode1 = var3; -var_node_list = var_passignopnode1; -var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction684#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) { -parser__ReduceAction684__action(self, p0); -RET_LABEL:; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26328); +show_backtrace(1); } -/* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */ -void parser__ReduceAction685__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_tminuseqnode2 /* var tminuseqnode2: nullable Object */; -short int var2 /* : Bool */; -int cltype; -int idtype; -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_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; +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ +cltype14 = type_array__Arraykernel__Object.color; +idtype15 = type_array__Arraykernel__Object.id; +if(var_listnode3 == NULL) { +var13 = 0; } else { -if(cltype >= var_tminuseqnode2->type->table_size) { -var2 = 0; +if(cltype14 >= var_listnode3->type->table_size) { +var13 = 0; } else { -var2 = var_tminuseqnode2->type->type_table[cltype] == idtype; +var13 = var_listnode3->type->type_table[cltype14] == idtype15; } } -if (!var2) { +if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25782); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26330); +show_backtrace(1); } -var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp); -((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on */; -CHECK_NEW_parser_nodes__AMinusAssignOp(var3); -var_passignopnode1 = var3; -var_node_list = var_passignopnode1; -var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on */; +var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; +var_listnode4 = var16; +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable_parser_nodes__AExpr.color; +idtype19 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var17 = 1; +} else { +if(cltype18 >= var_pexprnode5->type->table_size) { +var17 = 0; +} else { +var17 = var_pexprnode5->type->type_table[cltype18] == idtype19; +} +} +if (!var17) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26333); +show_backtrace(1); +} +var_tkwdonode6 = var_nodearraylist9; +/* isa nullable TKwdo */ +cltype21 = type_nullable_parser_nodes__TKwdo.color; +idtype22 = type_nullable_parser_nodes__TKwdo.id; +if(var_tkwdonode6 == NULL) { +var20 = 1; +} else { +if(cltype21 >= var_tkwdonode6->type->table_size) { +var20 = 0; +} else { +var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22; +} +} +if (!var20) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26335); +show_backtrace(1); +} +var_pexprnode7 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype24 = type_nullable_parser_nodes__AExpr.color; +idtype25 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_pexprnode7->type->table_size) { +var23 = 0; +} else { +var23 = var_pexprnode7->type->type_table[cltype24] == idtype25; +} +} +if (!var23) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26337); +show_backtrace(1); +} +var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); +var27 = NULL; +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var26, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aforexpr on */; +var_pexprnode1 = var26; +var_node_list = var_pexprnode1; +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#ReduceAction685#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) { -parser__ReduceAction685__action(self, p0); +/* method parser#ReduceAction706#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) { +parser__ReduceAction706__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction686#action for (self: ReduceAction686, Parser) */ -void parser__ReduceAction686__action(val* self, val* p0) { +/* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */ +void parser__ReduceAction707__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; -short int var4 /* : Bool */; +val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; +short int var5 /* : 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 */; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : AAssertExpr */; +val* var13 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; +long var14 /* : Int */; +long var15 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +var_tkwassertnode2 = var_nodearraylist1; +/* isa nullable TKwassert */ +cltype = type_nullable_parser_nodes__TKwassert.color; +idtype = type_nullable_parser_nodes__TKwassert.id; +if(var_tkwassertnode2 == NULL) { +var5 = 1; } else { -if(cltype >= var_tkwdonode2->type->table_size) { -var4 = 0; +if(cltype >= var_tkwassertnode2->type->table_size) { +var5 = 0; } else { -var4 = var_tkwdonode2->type->type_table[cltype] == idtype; +var5 = var_tkwassertnode2->type->type_table[cltype] == idtype; } } -if (!var4) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25799); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26360); +show_backtrace(1); } -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; +var_pexprnode4 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { +var6 = 1; } else { -if(cltype6 >= var_pexprnode3->type->table_size) { -var5 = 0; +if(cltype7 >= var_pexprnode4->type->table_size) { +var6 = 0; } else { -var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; +var6 = var_pexprnode4->type->type_table[cltype7] == idtype8; } } -if (!var5) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25801); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26362); +show_backtrace(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; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode5 == NULL) { +var9 = 1; } else { -if(cltype9 >= var_plabelnode4->type->table_size) { -var8 = 0; +if(cltype10 >= var_pexprnode5->type->table_size) { +var9 = 0; } else { -var8 = var_plabelnode4->type->type_table[cltype9] == idtype10; +var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; } } -if (!var8) { +if (!var9) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25803); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26364); +show_backtrace(1); } -var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr); -((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4) /* init_adoexpr on */; -CHECK_NEW_parser_nodes__ADoExpr(var11); -var_pexprnode1 = var11; +var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); +var13 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var12, var_tkwassertnode2, var13, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on */; +var_pexprnode1 = var12; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; +var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction686#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction686__action(val* self, val* p0) { -parser__ReduceAction686__action(self, p0); +/* method parser#ReduceAction707#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) { +parser__ReduceAction707__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */ -void parser__ReduceAction687__action(val* self, val* p0) { +/* method parser#ReduceAction708#action for (self: ReduceAction708, Parser) */ +void parser__ReduceAction708__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_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_tkwdonode2 /* var tkwdonode2: nullable Object */; -short int var3 /* : Bool */; +val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : ADoExpr */; -val* var8 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */; -long var9 /* : Int */; -long var10 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -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) { -var3 = 1; -} else { -if(cltype >= var_tkwdonode2->type->table_size) { -var3 = 0; -} else { -var3 = var_tkwdonode2->type->type_table[cltype] == idtype; -} -} -if (!var3) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25821); -exit(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 (!var4) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25823); -exit(1); -} -var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr); -var8 = NULL; -((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var7, var_tkwdonode2, var_pexprnode3, var8) /* init_adoexpr on */; -CHECK_NEW_parser_nodes__ADoExpr(var7); -var_pexprnode1 = var7; -var_node_list = var_pexprnode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; -RET_LABEL:; -} -/* method parser#ReduceAction687#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) { -parser__ReduceAction687__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */ -void parser__ReduceAction688__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var9 /* : Bool */; -int cltype; -int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: 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_pexprnode4 /* var pexprnode4: nullable Object */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : AIfExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var16 /* : AAssertExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; +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; +var_nodearraylist5 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; +var_nodearraylist4 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; +var_nodearraylist3 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; +var_nodearraylist2 = 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; -var_tkwifnode2 = var_nodearraylist1; -/* isa nullable TKwif */ -cltype = type_nullable_parser_nodes__TKwif.color; -idtype = type_nullable_parser_nodes__TKwif.id; -if(var_tkwifnode2 == NULL) { -var9 = 1; +var_nodearraylist1 = var5; +var_tkwassertnode2 = var_nodearraylist1; +/* isa nullable TKwassert */ +cltype = type_nullable_parser_nodes__TKwassert.color; +idtype = type_nullable_parser_nodes__TKwassert.id; +if(var_tkwassertnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_tkwifnode2->type->table_size) { -var9 = 0; +if(cltype >= var_tkwassertnode2->type->table_size) { +var6 = 0; } else { -var9 = var_tkwifnode2->type->type_table[cltype] == idtype; +var6 = var_tkwassertnode2->type->type_table[cltype] == idtype; } } -if (!var9) { +if (!var6) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26386); +show_backtrace(1); +} +var_tidnode3 = var_nodearraylist2; +/* 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 (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25847); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26388); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; -/* isa nullable AExpr */ +var_pexprnode4 = var_nodearraylist3; +/* isa nullable AExpr */ cltype11 = type_nullable_parser_nodes__AExpr.color; idtype12 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { +if(var_pexprnode4 == NULL) { var10 = 1; } else { -if(cltype11 >= var_pexprnode3->type->table_size) { +if(cltype11 >= var_pexprnode4->type->table_size) { var10 = 0; } else { -var10 = var_pexprnode3->type->type_table[cltype11] == idtype12; +var10 = var_pexprnode4->type->type_table[cltype11] == idtype12; } } if (!var10) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25849); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26390); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist6; -/* isa nullable AExpr */ +var_pexprnode5 = var_nodearraylist5; +/* isa nullable AExpr */ cltype14 = type_nullable_parser_nodes__AExpr.color; idtype15 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { +if(var_pexprnode5 == NULL) { var13 = 1; } else { -if(cltype14 >= var_pexprnode4->type->table_size) { +if(cltype14 >= var_pexprnode5->type->table_size) { var13 = 0; } else { -var13 = var_pexprnode4->type->type_table[cltype14] == idtype15; +var13 = var_pexprnode5->type->type_table[cltype14] == idtype15; } } if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25851); -exit(1); -} -var_pexprnode5 = var_nodearraylist8; -/* isa nullable AExpr */ -cltype17 = type_nullable_parser_nodes__AExpr.color; -idtype18 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_pexprnode5->type->table_size) { -var16 = 0; -} else { -var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; -} -} -if (!var16) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25853); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26392); +show_backtrace(1); } -var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); -((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on */; -CHECK_NEW_parser_nodes__AIfExpr(var19); -var_pexprnode1 = var19; +var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); +((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var16, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on */; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; +var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction688#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) { -parser__ReduceAction688__action(self, p0); +/* method parser#ReduceAction708#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction708__action(val* self, val* p0) { +parser__ReduceAction708__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */ -void parser__ReduceAction689__action(val* self, val* p0) { +/* method parser#ReduceAction709#action for (self: ReduceAction709, Parser) */ +void parser__ReduceAction709__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; val* var_pexprnode4 /* var pexprnode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var14 /* : AIfExpr */; -val* var15 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AAssertExpr */; +val* var8 /* : null */; +val* var9 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; +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; +var_nodearraylist2 = 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_tkwifnode2 = var_nodearraylist1; -/* isa nullable TKwif */ -cltype = type_nullable_parser_nodes__TKwif.color; -idtype = type_nullable_parser_nodes__TKwif.id; -if(var_tkwifnode2 == NULL) { -var7 = 1; +var_nodearraylist1 = var2; +var_tkwassertnode2 = var_nodearraylist1; +/* isa nullable TKwassert */ +cltype = type_nullable_parser_nodes__TKwassert.color; +idtype = type_nullable_parser_nodes__TKwassert.id; +if(var_tkwassertnode2 == NULL) { +var3 = 1; } else { -if(cltype >= var_tkwifnode2->type->table_size) { -var7 = 0; +if(cltype >= var_tkwassertnode2->type->table_size) { +var3 = 0; } else { -var7 = var_tkwifnode2->type->type_table[cltype] == idtype; +var3 = var_tkwassertnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var3) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25876); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26411); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype9 = type_nullable_parser_nodes__AExpr.color; -idtype10 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var8 = 1; +var_pexprnode4 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype5 = type_nullable_parser_nodes__AExpr.color; +idtype6 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode4 == NULL) { +var4 = 1; } else { -if(cltype9 >= var_pexprnode3->type->table_size) { -var8 = 0; +if(cltype5 >= var_pexprnode4->type->table_size) { +var4 = 0; } else { -var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; +var4 = var_pexprnode4->type->type_table[cltype5] == idtype6; } } -if (!var8) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25878); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26413); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist6; +var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); +var8 = NULL; +var9 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var7, var_tkwassertnode2, var8, var_pexprnode4, var9) /* init_aassertexpr on */; +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction709#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction709__action(val* self, val* p0) { +parser__ReduceAction709__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */ +void parser__ReduceAction710__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_tkwassertnode2 /* var tkwassertnode2: 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_pexprnode4 /* var pexprnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AAssertExpr */; +val* var12 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; +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_nodearraylist3 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var3; +var_tkwassertnode2 = var_nodearraylist1; +/* isa nullable TKwassert */ +cltype = type_nullable_parser_nodes__TKwassert.color; +idtype = type_nullable_parser_nodes__TKwassert.id; +if(var_tkwassertnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_tkwassertnode2->type->table_size) { +var4 = 0; +} else { +var4 = var_tkwassertnode2->type->type_table[cltype] == idtype; +} +} +if (!var4) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26433); +show_backtrace(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(cltype6 >= var_tidnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_tidnode3->type->type_table[cltype6] == idtype7; +} +} +if (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26435); +show_backtrace(1); +} +var_pexprnode4 = var_nodearraylist3; /* isa nullable AExpr */ -cltype12 = type_nullable_parser_nodes__AExpr.color; -idtype13 = type_nullable_parser_nodes__AExpr.id; +cltype9 = type_nullable_parser_nodes__AExpr.color; +idtype10 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode4 == NULL) { -var11 = 1; +var8 = 1; } else { -if(cltype12 >= var_pexprnode4->type->table_size) { -var11 = 0; +if(cltype9 >= var_pexprnode4->type->table_size) { +var8 = 0; } else { -var11 = var_pexprnode4->type->type_table[cltype12] == idtype13; +var8 = var_pexprnode4->type->type_table[cltype9] == idtype10; } } -if (!var11) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25880); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26437); +show_backtrace(1); } -var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); -var15 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15) /* init_aifexpr on */; -CHECK_NEW_parser_nodes__AIfExpr(var14); -var_pexprnode1 = var14; +var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); +var12 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var11, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var12) /* init_aassertexpr on */; +var_pexprnode1 = var11; var_node_list = var_pexprnode1; -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 */; +var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction689#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) { -parser__ReduceAction689__action(self, p0); +/* method parser#ReduceAction710#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) { +parser__ReduceAction710__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */ -void parser__ReduceAction690__action(val* self, val* p0) { +/* method parser#ReduceAction711#action for (self: ReduceAction711, Parser) */ +void parser__ReduceAction711__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* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tidnode1 /* var tidnode1: nullable Object */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var2; +var_tidnode1 = var_nodearraylist1; +var_node_list = var_tidnode1; +var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction711#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction711__action(val* self, val* p0) { +parser__ReduceAction711__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */ +void parser__ReduceAction714__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_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var6 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var7 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var8 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var9 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var10 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var11 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var9 /* : Bool */; +short int var12 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; +val* var_tkwthennode4 /* var tkwthennode4: nullable Object */; short int var16 /* : Bool */; int cltype17; int idtype18; -val* var19 /* : AIfExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var28 /* : AIfexprExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */; +long var29 /* : Int */; +long var30 /* : 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; +var_nodearraylist11 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var2; +var_nodearraylist10 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var3; +var_nodearraylist9 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var4; +var_nodearraylist8 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var5; +var_nodearraylist7 = var5; var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var6; +var_nodearraylist6 = var6; var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var7; +var_nodearraylist5 = var7; var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var8; +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; var_tkwifnode2 = var_nodearraylist1; /* isa nullable TKwif */ cltype = type_nullable_parser_nodes__TKwif.color; idtype = type_nullable_parser_nodes__TKwif.id; if(var_tkwifnode2 == NULL) { -var9 = 1; +var12 = 1; } else { if(cltype >= var_tkwifnode2->type->table_size) { -var9 = 0; +var12 = 0; } else { -var9 = var_tkwifnode2->type->type_table[cltype] == idtype; +var12 = var_tkwifnode2->type->type_table[cltype] == idtype; } } -if (!var9) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25905); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26477); +show_backtrace(1); } var_pexprnode3 = var_nodearraylist3; /* isa nullable AExpr */ -cltype11 = type_nullable_parser_nodes__AExpr.color; -idtype12 = type_nullable_parser_nodes__AExpr.id; +cltype14 = type_nullable_parser_nodes__AExpr.color; +idtype15 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var10 = 1; +var13 = 1; } else { -if(cltype11 >= var_pexprnode3->type->table_size) { -var10 = 0; +if(cltype14 >= var_pexprnode3->type->table_size) { +var13 = 0; } else { -var10 = var_pexprnode3->type->type_table[cltype11] == idtype12; +var13 = var_pexprnode3->type->type_table[cltype14] == idtype15; } } -if (!var10) { +if (!var13) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25907); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26479); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype14 = type_nullable_parser_nodes__AExpr.color; -idtype15 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { -var13 = 1; +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype17 = type_nullable_parser_nodes__TKwthen.color; +idtype18 = type_nullable_parser_nodes__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var16 = 1; } else { -if(cltype14 >= var_pexprnode4->type->table_size) { -var13 = 0; +if(cltype17 >= var_tkwthennode4->type->table_size) { +var16 = 0; } else { -var13 = var_pexprnode4->type->type_table[cltype14] == idtype15; +var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18; } } -if (!var13) { +if (!var16) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25909); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26481); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist8; +var_pexprnode5 = var_nodearraylist7; /* isa nullable AExpr */ -cltype17 = type_nullable_parser_nodes__AExpr.color; -idtype18 = type_nullable_parser_nodes__AExpr.id; +cltype20 = type_nullable_parser_nodes__AExpr.color; +idtype21 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode5 == NULL) { -var16 = 1; +var19 = 1; } else { -if(cltype17 >= var_pexprnode5->type->table_size) { -var16 = 0; +if(cltype20 >= var_pexprnode5->type->table_size) { +var19 = 0; } else { -var16 = var_pexprnode5->type->type_table[cltype17] == idtype18; +var19 = var_pexprnode5->type->type_table[cltype20] == idtype21; } } -if (!var16) { +if (!var19) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25911); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26483); +show_backtrace(1); } -var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); -((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on */; -CHECK_NEW_parser_nodes__AIfExpr(var19); -var_pexprnode1 = var19; +var_tkwelsenode6 = var_nodearraylist9; +/* isa nullable TKwelse */ +cltype23 = type_nullable_parser_nodes__TKwelse.color; +idtype24 = type_nullable_parser_nodes__TKwelse.id; +if(var_tkwelsenode6 == NULL) { +var22 = 1; +} else { +if(cltype23 >= var_tkwelsenode6->type->table_size) { +var22 = 0; +} else { +var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24; +} +} +if (!var22) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26485); +show_backtrace(1); +} +var_pexprnode7 = var_nodearraylist11; +/* isa nullable AExpr */ +cltype26 = type_nullable_parser_nodes__AExpr.color; +idtype27 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode7 == NULL) { +var25 = 1; +} else { +if(cltype26 >= var_pexprnode7->type->table_size) { +var25 = 0; +} else { +var25 = var_pexprnode7->type->type_table[cltype26] == idtype27; +} +} +if (!var25) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26487); +show_backtrace(1); +} +var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr); +((void (*)(val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AIfexprExpr__init_aifexprexpr]))(var28, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7) /* init_aifexprexpr on */; +var_pexprnode1 = var28; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on */; +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#ReduceAction690#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) { -parser__ReduceAction690__action(self, p0); +/* method parser#ReduceAction714#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) { +parser__ReduceAction714__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */ -void parser__ReduceAction691__action(val* self, val* p0) { +/* method parser#ReduceAction716#action for (self: ReduceAction716, Parser) */ +void parser__ReduceAction716__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: 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 /* : AIfExpr */; -val* var15 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AOrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */; +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; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; +var_nodearraylist2 = 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_tkwifnode2 = var_nodearraylist1; -/* isa nullable TKwif */ -cltype = type_nullable_parser_nodes__TKwif.color; -idtype = type_nullable_parser_nodes__TKwif.id; -if(var_tkwifnode2 == NULL) { -var7 = 1; +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(cltype >= var_tkwifnode2->type->table_size) { -var7 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var7 = var_tkwifnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25934); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26510); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; +var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ -cltype9 = type_nullable_parser_nodes__AExpr.color; -idtype10 = type_nullable_parser_nodes__AExpr.id; +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var8 = 1; -} else { -if(cltype9 >= var_pexprnode3->type->table_size) { -var8 = 0; -} else { -var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; -} -} -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25936); -exit(1); -} -var_pexprnode5 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype12 = type_nullable_parser_nodes__AExpr.color; -idtype13 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var11 = 1; +var6 = 1; } else { -if(cltype12 >= var_pexprnode5->type->table_size) { -var11 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var11) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25938); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26512); +show_backtrace(1); } -var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); -var15 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var15, var_pexprnode5) /* init_aifexpr on */; -CHECK_NEW_parser_nodes__AIfExpr(var14); -var_pexprnode1 = var14; +var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AOrExpr__init_aorexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aorexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -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 */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction691#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) { -parser__ReduceAction691__action(self, p0); +/* method parser#ReduceAction716#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction716__action(val* self, val* p0) { +parser__ReduceAction716__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */ -void parser__ReduceAction692__action(val* self, val* p0) { +/* method parser#ReduceAction717#action for (self: ReduceAction717, Parser) */ +void parser__ReduceAction717__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* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var6 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: 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 /* : AIfExpr */; -val* var16 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AAndExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */; +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_nodearraylist7 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; +var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_tkwifnode2 = var_nodearraylist1; -/* isa nullable TKwif */ -cltype = type_nullable_parser_nodes__TKwif.color; -idtype = type_nullable_parser_nodes__TKwif.id; -if(var_tkwifnode2 == NULL) { -var8 = 1; +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(cltype >= var_tkwifnode2->type->table_size) { -var8 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var8 = var_tkwifnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25962); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26531); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; +var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ -cltype10 = type_nullable_parser_nodes__AExpr.color; -idtype11 = type_nullable_parser_nodes__AExpr.id; +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_pexprnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_pexprnode3->type->type_table[cltype10] == idtype11; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25964); -exit(1); -} -var_pexprnode5 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype13 = type_nullable_parser_nodes__AExpr.color; -idtype14 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var12 = 1; +var6 = 1; } else { -if(cltype13 >= var_pexprnode5->type->table_size) { -var12 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var12) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25966); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26533); +show_backtrace(1); } -var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr); -var16 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var15, var_tkwifnode2, var_pexprnode3, var16, var_pexprnode5) /* init_aifexpr on */; -CHECK_NEW_parser_nodes__AIfExpr(var15); -var_pexprnode1 = var15; +var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAndExpr__init_aandexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aandexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction692#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) { -parser__ReduceAction692__action(self, p0); +/* method parser#ReduceAction717#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction717__action(val* self, val* p0) { +parser__ReduceAction717__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */ -void parser__ReduceAction695__action(val* self, val* p0) { +/* method parser#ReduceAction718#action for (self: ReduceAction718, Parser) */ +void parser__ReduceAction718__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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_tkwloopnode2 /* var tkwloopnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : 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 /* : ALoopExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : AOrElseExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */; +long var11 /* : Int */; 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_nodearraylist3 = var1; +var_nodearraylist5 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist4 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var_tkwloopnode2 = var_nodearraylist1; -/* isa nullable TKwloop */ -cltype = type_nullable_parser_nodes__TKwloop.color; -idtype = type_nullable_parser_nodes__TKwloop.id; -if(var_tkwloopnode2 == NULL) { -var4 = 1; +var_nodearraylist3 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var5; +var_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_tkwloopnode2->type->table_size) { -var4 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var6 = 0; } else { -var4 = var_tkwloopnode2->type->type_table[cltype] == idtype; +var6 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var4) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25986); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26553); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist2; +var_pexprnode3 = var_nodearraylist5; /* isa nullable AExpr */ -cltype6 = type_nullable_parser_nodes__AExpr.color; -idtype7 = type_nullable_parser_nodes__AExpr.id; +cltype8 = type_nullable_parser_nodes__AExpr.color; +idtype9 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var5 = 1; -} else { -if(cltype6 >= var_pexprnode3->type->table_size) { -var5 = 0; -} else { -var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; -} -} -if (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25988); -exit(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; +var7 = 1; } else { -if(cltype9 >= var_plabelnode4->type->table_size) { -var8 = 0; +if(cltype8 >= var_pexprnode3->type->table_size) { +var7 = 0; } else { -var8 = var_plabelnode4->type->type_table[cltype9] == idtype10; +var7 = var_pexprnode3->type->type_table[cltype8] == idtype9; } } -if (!var8) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25990); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26555); +show_backtrace(1); } -var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr); -((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var11, var_tkwloopnode2, var_pexprnode3, var_plabelnode4) /* init_aloopexpr on */; -CHECK_NEW_parser_nodes__ALoopExpr(var11); -var_pexprnode1 = var11; +var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr); +((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AOrElseExpr__init_aorelseexpr]))(var10, var_pexprnode2, var_pexprnode3) /* init_aorelseexpr on */; +var_pexprnode1 = var10; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; +var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction695#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) { -parser__ReduceAction695__action(self, p0); +/* method parser#ReduceAction718#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction718__action(val* self, val* p0) { +parser__ReduceAction718__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */ -void parser__ReduceAction696__action(val* self, val* p0) { +/* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */ +void parser__ReduceAction719__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */; -short int var3 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : ALoopExpr */; -val* var8 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; -long var9 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AImpliesExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */; long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var_tkwloopnode2 = var_nodearraylist1; -/* isa nullable TKwloop */ -cltype = type_nullable_parser_nodes__TKwloop.color; -idtype = type_nullable_parser_nodes__TKwloop.id; -if(var_tkwloopnode2 == NULL) { -var3 = 1; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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_tkwloopnode2->type->table_size) { -var3 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var3 = var_tkwloopnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var3) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26008); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26574); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist2; +var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ -cltype5 = type_nullable_parser_nodes__AExpr.color; -idtype6 = type_nullable_parser_nodes__AExpr.id; +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var4 = 1; +var6 = 1; } else { -if(cltype5 >= var_pexprnode3->type->table_size) { -var4 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var4 = var_pexprnode3->type->type_table[cltype5] == idtype6; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var4) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26010); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26576); +show_backtrace(1); } -var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr); -var8 = NULL; -((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var7, var_tkwloopnode2, var_pexprnode3, var8) /* init_aloopexpr on */; -CHECK_NEW_parser_nodes__ALoopExpr(var7); -var_pexprnode1 = var7; -var_node_list = var_pexprnode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AImpliesExpr__init_aimpliesexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aimpliesexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction696#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) { -parser__ReduceAction696__action(self, p0); +/* method parser#ReduceAction719#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) { +parser__ReduceAction719__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction697#action for (self: ReduceAction697, Parser) */ -void parser__ReduceAction697__action(val* self, val* p0) { +/* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */ +void parser__ReduceAction721__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* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_tkwdonode4 /* var tkwdonode4: 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* var_plabelnode6 /* var plabelnode6: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : AWhileExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; -long var22 /* : Int */; -long var23 /* : Int */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : ANotExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */; +long var9 /* : Int */; +long var10 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var2; +var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var7; -var_tkwwhilenode2 = var_nodearraylist1; -/* isa nullable TKwwhile */ -cltype = type_nullable_parser_nodes__TKwwhile.color; -idtype = type_nullable_parser_nodes__TKwwhile.id; -if(var_tkwwhilenode2 == NULL) { -var8 = 1; +var_nodearraylist1 = var3; +var_tkwnotnode2 = var_nodearraylist1; +/* isa nullable TKwnot */ +cltype = type_nullable_parser_nodes__TKwnot.color; +idtype = type_nullable_parser_nodes__TKwnot.id; +if(var_tkwnotnode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_tkwwhilenode2->type->table_size) { -var8 = 0; +if(cltype >= var_tkwnotnode2->type->table_size) { +var4 = 0; } else { -var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype; +var4 = var_tkwnotnode2->type->type_table[cltype] == idtype; } } -if (!var8) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26033); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26594); +show_backtrace(1); } var_pexprnode3 = var_nodearraylist3; /* isa nullable AExpr */ -cltype10 = type_nullable_parser_nodes__AExpr.color; -idtype11 = type_nullable_parser_nodes__AExpr.id; +cltype6 = type_nullable_parser_nodes__AExpr.color; +idtype7 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_pexprnode3->type->table_size) { -var9 = 0; -} else { -var9 = var_pexprnode3->type->type_table[cltype10] == idtype11; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26035); -exit(1); -} -var_tkwdonode4 = var_nodearraylist5; -/* isa nullable TKwdo */ -cltype13 = type_nullable_parser_nodes__TKwdo.color; -idtype14 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode4 == NULL) { -var12 = 1; -} else { -if(cltype13 >= var_tkwdonode4->type->table_size) { -var12 = 0; -} else { -var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14; -} -} -if (!var12) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26037); -exit(1); -} -var_pexprnode5 = var_nodearraylist6; -/* 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(cltype16 >= var_pexprnode5->type->table_size) { -var15 = 0; -} else { -var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; -} -} -if (!var15) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26039); -exit(1); -} -var_plabelnode6 = var_nodearraylist7; -/* isa nullable ALabel */ -cltype19 = type_nullable_parser_nodes__ALabel.color; -idtype20 = type_nullable_parser_nodes__ALabel.id; -if(var_plabelnode6 == NULL) { -var18 = 1; +var5 = 1; } else { -if(cltype19 >= var_plabelnode6->type->table_size) { -var18 = 0; +if(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; } else { -var18 = var_plabelnode6->type->type_table[cltype19] == idtype20; +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; } } -if (!var18) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26041); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26596); +show_backtrace(1); } -var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr); -((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var21, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6) /* init_awhileexpr on */; -CHECK_NEW_parser_nodes__AWhileExpr(var21); -var_pexprnode1 = var21; +var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr); +((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ANotExpr__init_anotexpr]))(var8, var_tkwnotnode2, var_pexprnode3) /* init_anotexpr on */; +var_pexprnode1 = var8; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on */; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction697#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction697__action(val* self, val* p0) { -parser__ReduceAction697__action(self, p0); +/* method parser#ReduceAction721#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) { +parser__ReduceAction721__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction698#action for (self: ReduceAction698, Parser) */ -void parser__ReduceAction698__action(val* self, val* p0) { +/* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */ +void parser__ReduceAction723__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; -short int var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var_tkwdonode4 /* var tkwdonode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AWhileExpr */; -val* var18 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; -long var19 /* : Int */; -long var20 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AEqExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */; +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; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var3; +var_nodearraylist2 = 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_tkwwhilenode2 = var_nodearraylist1; -/* isa nullable TKwwhile */ -cltype = type_nullable_parser_nodes__TKwwhile.color; -idtype = type_nullable_parser_nodes__TKwwhile.id; -if(var_tkwwhilenode2 == NULL) { -var7 = 1; +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(cltype >= var_tkwwhilenode2->type->table_size) { -var7 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var7) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26065); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26615); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; +var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ -cltype9 = type_nullable_parser_nodes__AExpr.color; -idtype10 = type_nullable_parser_nodes__AExpr.id; +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var8 = 1; +var6 = 1; } else { -if(cltype9 >= var_pexprnode3->type->table_size) { -var8 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var8) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26067); -exit(1); -} -var_tkwdonode4 = var_nodearraylist5; -/* isa nullable TKwdo */ -cltype12 = type_nullable_parser_nodes__TKwdo.color; -idtype13 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode4 == NULL) { -var11 = 1; -} else { -if(cltype12 >= var_tkwdonode4->type->table_size) { -var11 = 0; -} else { -var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13; -} -} -if (!var11) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26069); -exit(1); -} -var_pexprnode5 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype15 = type_nullable_parser_nodes__AExpr.color; -idtype16 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_pexprnode5->type->table_size) { -var14 = 0; -} else { -var14 = var_pexprnode5->type->type_table[cltype15] == idtype16; -} -} -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26071); -exit(1); -} -var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr); -var18 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var17, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var18) /* init_awhileexpr on */; -CHECK_NEW_parser_nodes__AWhileExpr(var17); -var_pexprnode1 = var17; -var_node_list = var_pexprnode1; -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#ReduceAction698#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction698__action(val* self, val* p0) { -parser__ReduceAction698__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */ -void parser__ReduceAction699__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_nodearraylist15 /* var nodearraylist15: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist14 /* var nodearraylist14: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist13 /* var nodearraylist13: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist12 /* var nodearraylist12: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var8 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var9 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var10 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var11 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var12 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var13 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var14 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var15 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var16 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; -short int var17 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : Array[Object] */; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -val* var_plabelnode8 /* var plabelnode8: nullable Object */; -short int var31 /* : Bool */; -int cltype32; -int idtype33; -val* var34 /* : AForExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; -long var35 /* : Int */; -long var36 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist15 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist14 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist13 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist12 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist11 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var11; -var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var12; -var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var13; -var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var14; -var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var15; -var16 = NEW_array__Array(&type_array__Arraykernel__Object); -((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on */; -CHECK_NEW_array__Array(var16); -var_listnode4 = var16; -var_tkwfornode2 = var_nodearraylist1; -/* isa nullable TKwfor */ -cltype = type_nullable_parser_nodes__TKwfor.color; -idtype = type_nullable_parser_nodes__TKwfor.id; -if(var_tkwfornode2 == NULL) { -var17 = 1; -} else { -if(cltype >= var_tkwfornode2->type->table_size) { -var17 = 0; -} else { -var17 = var_tkwfornode2->type->type_table[cltype] == idtype; -} -} -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26105); -exit(1); -} -var_listnode3 = var_nodearraylist5; -/* isa Array[Object] */ -cltype19 = type_array__Arraykernel__Object.color; -idtype20 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var18 = 0; -} else { -if(cltype19 >= var_listnode3->type->table_size) { -var18 = 0; -} else { -var18 = var_listnode3->type->type_table[cltype19] == idtype20; -} -} -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26107); -exit(1); -} -var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var21; -var_pexprnode5 = var_nodearraylist11; -/* isa nullable AExpr */ -cltype23 = type_nullable_parser_nodes__AExpr.color; -idtype24 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var22 = 1; -} else { -if(cltype23 >= var_pexprnode5->type->table_size) { -var22 = 0; -} else { -var22 = var_pexprnode5->type->type_table[cltype23] == idtype24; -} -} -if (!var22) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26110); -exit(1); -} -var_tkwdonode6 = var_nodearraylist13; -/* isa nullable TKwdo */ -cltype26 = type_nullable_parser_nodes__TKwdo.color; -idtype27 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode6 == NULL) { -var25 = 1; -} else { -if(cltype26 >= var_tkwdonode6->type->table_size) { -var25 = 0; -} else { -var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27; -} -} -if (!var25) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26112); -exit(1); -} -var_pexprnode7 = var_nodearraylist14; -/* isa nullable AExpr */ -cltype29 = type_nullable_parser_nodes__AExpr.color; -idtype30 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode7 == NULL) { -var28 = 1; -} else { -if(cltype29 >= var_pexprnode7->type->table_size) { -var28 = 0; -} else { -var28 = var_pexprnode7->type->type_table[cltype29] == idtype30; -} -} -if (!var28) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26114); -exit(1); -} -var_plabelnode8 = var_nodearraylist15; -/* isa nullable ALabel */ -cltype32 = type_nullable_parser_nodes__ALabel.color; -idtype33 = type_nullable_parser_nodes__ALabel.id; -if(var_plabelnode8 == NULL) { -var31 = 1; -} else { -if(cltype32 >= var_plabelnode8->type->table_size) { -var31 = 0; -} else { -var31 = var_plabelnode8->type->type_table[cltype32] == idtype33; -} -} -if (!var31) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26116); -exit(1); -} -var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var34, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on */; -CHECK_NEW_parser_nodes__AForExpr(var34); -var_pexprnode1 = var34; -var_node_list = var_pexprnode1; -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#ReduceAction699#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) { -parser__ReduceAction699__action(self, p0); -RET_LABEL:; -} -/* method parser#ReduceAction700#action for (self: ReduceAction700, Parser) */ -void parser__ReduceAction700__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var8 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var12 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; -short int var13 /* : Bool */; -int cltype; -int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_plabelnode8 /* var plabelnode8: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : AForExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; -long var31 /* : Int */; -long var32 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_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_listnode4 = var12; -var_tkwfornode2 = var_nodearraylist1; -/* isa nullable TKwfor */ -cltype = type_nullable_parser_nodes__TKwfor.color; -idtype = type_nullable_parser_nodes__TKwfor.id; -if(var_tkwfornode2 == NULL) { -var13 = 1; -} else { -if(cltype >= var_tkwfornode2->type->table_size) { -var13 = 0; -} else { -var13 = var_tkwfornode2->type->type_table[cltype] == idtype; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26147); -exit(1); -} -var_listnode3 = var_nodearraylist3; -/* isa Array[Object] */ -cltype15 = type_array__Arraykernel__Object.color; -idtype16 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var14 = 0; -} else { -if(cltype15 >= var_listnode3->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode3->type->type_table[cltype15] == idtype16; -} -} -if (!var14) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26149); -exit(1); -} -var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var17; -var_pexprnode5 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype19 = type_nullable_parser_nodes__AExpr.color; -idtype20 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var_pexprnode5->type->table_size) { -var18 = 0; -} else { -var18 = var_pexprnode5->type->type_table[cltype19] == idtype20; -} -} -if (!var18) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26152); -exit(1); -} -var_tkwdonode6 = var_nodearraylist9; -/* isa nullable TKwdo */ -cltype22 = type_nullable_parser_nodes__TKwdo.color; -idtype23 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode6 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_tkwdonode6->type->table_size) { -var21 = 0; -} else { -var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23; -} -} -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26154); -exit(1); -} -var_pexprnode7 = var_nodearraylist10; -/* isa nullable AExpr */ -cltype25 = type_nullable_parser_nodes__AExpr.color; -idtype26 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode7 == NULL) { -var24 = 1; -} else { -if(cltype25 >= var_pexprnode7->type->table_size) { -var24 = 0; -} else { -var24 = var_pexprnode7->type->type_table[cltype25] == idtype26; -} -} -if (!var24) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26156); -exit(1); -} -var_plabelnode8 = var_nodearraylist11; -/* isa nullable ALabel */ -cltype28 = type_nullable_parser_nodes__ALabel.color; -idtype29 = type_nullable_parser_nodes__ALabel.id; -if(var_plabelnode8 == NULL) { -var27 = 1; -} else { -if(cltype28 >= var_plabelnode8->type->table_size) { -var27 = 0; -} else { -var27 = var_plabelnode8->type->type_table[cltype28] == idtype29; -} -} -if (!var27) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26158); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26617); +show_backtrace(1); } -var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on */; -CHECK_NEW_parser_nodes__AForExpr(var30); -var_pexprnode1 = var30; +var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEqExpr__init_aeqexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeqexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -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 */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction700#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction700__action(val* self, val* p0) { -parser__ReduceAction700__action(self, p0); +/* method parser#ReduceAction723#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) { +parser__ReduceAction723__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */ -void parser__ReduceAction701__action(val* self, val* p0) { +/* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */ +void parser__ReduceAction724__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_nodearraylist14 /* var nodearraylist14: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist13 /* var nodearraylist13: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist12 /* var nodearraylist12: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var8 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var9 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var10 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var11 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var12 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var13 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var14 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var15 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; -short int var16 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : Array[Object] */; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -val* var30 /* : AForExpr */; -val* var31 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; -long var32 /* : Int */; -long var33 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ANeExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */; +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_nodearraylist14 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist13 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist12 = var3; +var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist11 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var5; -var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var6; -var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var7; -var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist7 = var8; -var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist6 = var9; -var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist5 = var10; -var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var11; -var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var12; -var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var13; -var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = 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_listnode4 = var15; -var_tkwfornode2 = var_nodearraylist1; -/* isa nullable TKwfor */ -cltype = type_nullable_parser_nodes__TKwfor.color; -idtype = type_nullable_parser_nodes__TKwfor.id; -if(var_tkwfornode2 == NULL) { -var16 = 1; +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(cltype >= var_tkwfornode2->type->table_size) { -var16 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var16 = var_tkwfornode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var16) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26192); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26636); +show_backtrace(1); } -var_listnode3 = var_nodearraylist5; -/* isa Array[Object] */ -cltype18 = type_array__Arraykernel__Object.color; -idtype19 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var17 = 0; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype18 >= var_listnode3->type->table_size) { -var17 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var17 = var_listnode3->type->type_table[cltype18] == idtype19; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var17) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26194); -exit(1); -} -var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var20; -var_pexprnode5 = var_nodearraylist11; -/* isa nullable AExpr */ -cltype22 = type_nullable_parser_nodes__AExpr.color; -idtype23 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var21 = 1; -} else { -if(cltype22 >= var_pexprnode5->type->table_size) { -var21 = 0; -} else { -var21 = var_pexprnode5->type->type_table[cltype22] == idtype23; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26638); +show_backtrace(1); } +var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ANeExpr__init_aneexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aneexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +RET_LABEL:; } -if (!var21) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26197); -exit(1); +/* method parser#ReduceAction724#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) { +parser__ReduceAction724__action(self, p0); +RET_LABEL:; } -var_tkwdonode6 = var_nodearraylist13; -/* isa nullable TKwdo */ -cltype25 = type_nullable_parser_nodes__TKwdo.color; -idtype26 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode6 == NULL) { -var24 = 1; +/* method parser#ReduceAction725#action for (self: ReduceAction725, Parser) */ +void parser__ReduceAction725__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ALtExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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(cltype25 >= var_tkwdonode6->type->table_size) { -var24 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var24 = var_tkwdonode6->type->type_table[cltype25] == idtype26; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var24) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26199); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26657); +show_backtrace(1); } -var_pexprnode7 = var_nodearraylist14; -/* isa nullable AExpr */ -cltype28 = type_nullable_parser_nodes__AExpr.color; -idtype29 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode7 == NULL) { -var27 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype28 >= var_pexprnode7->type->table_size) { -var27 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var27 = var_pexprnode7->type->type_table[cltype28] == idtype29; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var27) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26201); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26659); +show_backtrace(1); } -var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); -var31 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var31) /* init_aforexpr on */; -CHECK_NEW_parser_nodes__AForExpr(var30); -var_pexprnode1 = var30; +var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALtExpr__init_altexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_altexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -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 */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction701#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) { -parser__ReduceAction701__action(self, p0); +/* method parser#ReduceAction725#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction725__action(val* self, val* p0) { +parser__ReduceAction725__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */ -void parser__ReduceAction702__action(val* self, val* p0) { +/* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */ +void parser__ReduceAction726__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_listnode4 /* var listnode4: Array[Object] */; -val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; -short int var12 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : Array[Object] */; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var_tkwdonode6 /* var tkwdonode6: nullable Object */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -val* var26 /* : AForExpr */; -val* var27 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; -long var28 /* : Int */; -long var29 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ALeExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */; +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_nodearraylist10 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist8 = var3; +var_nodearraylist2 = 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_listnode4 = var11; -var_tkwfornode2 = var_nodearraylist1; -/* isa nullable TKwfor */ -cltype = type_nullable_parser_nodes__TKwfor.color; -idtype = type_nullable_parser_nodes__TKwfor.id; -if(var_tkwfornode2 == NULL) { -var12 = 1; +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(cltype >= var_tkwfornode2->type->table_size) { -var12 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var12 = var_tkwfornode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var12) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26231); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26678); +show_backtrace(1); } -var_listnode3 = var_nodearraylist3; -/* isa Array[Object] */ -cltype14 = type_array__Arraykernel__Object.color; -idtype15 = type_array__Arraykernel__Object.id; -if(var_listnode3 == NULL) { -var13 = 0; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype14 >= var_listnode3->type->table_size) { -var13 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var13 = var_listnode3->type->type_table[cltype14] == idtype15; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var13) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26233); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26680); +show_backtrace(1); } -var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on */; -var_listnode4 = var16; -var_pexprnode5 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype18 = type_nullable_parser_nodes__AExpr.color; -idtype19 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_pexprnode5->type->table_size) { -var17 = 0; -} else { -var17 = var_pexprnode5->type->type_table[cltype18] == idtype19; -} -} -if (!var17) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26236); -exit(1); +var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALeExpr__init_aleexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aleexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +RET_LABEL:; } -var_tkwdonode6 = var_nodearraylist9; -/* isa nullable TKwdo */ -cltype21 = type_nullable_parser_nodes__TKwdo.color; -idtype22 = type_nullable_parser_nodes__TKwdo.id; -if(var_tkwdonode6 == NULL) { -var20 = 1; +/* method parser#ReduceAction726#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) { +parser__ReduceAction726__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction727#action for (self: ReduceAction727, Parser) */ +void parser__ReduceAction727__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ALlExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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(cltype21 >= var_tkwdonode6->type->table_size) { -var20 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var20) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26238); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26699); +show_backtrace(1); } -var_pexprnode7 = var_nodearraylist10; -/* isa nullable AExpr */ -cltype24 = type_nullable_parser_nodes__AExpr.color; -idtype25 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode7 == NULL) { -var23 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype24 >= var_pexprnode7->type->table_size) { -var23 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var23 = var_pexprnode7->type->type_table[cltype24] == idtype25; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var23) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26240); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26701); +show_backtrace(1); } -var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr); -var27 = NULL; -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var26, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aforexpr on */; -CHECK_NEW_parser_nodes__AForExpr(var26); -var_pexprnode1 = var26; +var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALlExpr__init_allexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_allexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -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 */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction702#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) { -parser__ReduceAction702__action(self, p0); +/* method parser#ReduceAction727#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction727__action(val* self, val* p0) { +parser__ReduceAction727__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction703#action for (self: ReduceAction703, Parser) */ -void parser__ReduceAction703__action(val* self, val* p0) { +/* method parser#ReduceAction728#action for (self: ReduceAction728, Parser) */ +void parser__ReduceAction728__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -8206,23 +7767,18 @@ val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : AAssertExpr */; -val* var13 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; -long var14 /* : Int */; -long var15 /* : Int */; +val* var9 /* : AGtExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -8234,637 +7790,660 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; var_nodearraylist1 = var4; -var_tkwassertnode2 = var_nodearraylist1; -/* isa nullable TKwassert */ -cltype = type_nullable_parser_nodes__TKwassert.color; -idtype = type_nullable_parser_nodes__TKwassert.id; -if(var_tkwassertnode2 == NULL) { +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_tkwassertnode2->type->table_size) { +if(cltype >= var_pexprnode2->type->table_size) { var5 = 0; } else { -var5 = var_tkwassertnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26263); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26720); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist2; -/* isa nullable AExpr */ +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ cltype7 = type_nullable_parser_nodes__AExpr.color; idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { +if(var_pexprnode3 == NULL) { var6 = 1; } else { -if(cltype7 >= var_pexprnode4->type->table_size) { +if(cltype7 >= var_pexprnode3->type->table_size) { var6 = 0; } else { -var6 = var_pexprnode4->type->type_table[cltype7] == idtype8; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26265); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26722); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype10 = type_nullable_parser_nodes__AExpr.color; -idtype11 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_pexprnode5->type->table_size) { -var9 = 0; -} else { -var9 = var_pexprnode5->type->type_table[cltype10] == idtype11; -} -} -if (!var9) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26267); -exit(1); -} -var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); -var13 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var12, var_tkwassertnode2, var13, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on */; -CHECK_NEW_parser_nodes__AAssertExpr(var12); -var_pexprnode1 = var12; +var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGtExpr__init_agtexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_agtexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction703#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction703__action(val* self, val* p0) { -parser__ReduceAction703__action(self, p0); +/* method parser#ReduceAction728#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction728__action(val* self, val* p0) { +parser__ReduceAction728__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */ -void parser__ReduceAction704__action(val* self, val* p0) { +/* method parser#ReduceAction729#action for (self: ReduceAction729, Parser) */ +void parser__ReduceAction729__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; -short int var6 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: 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_pexprnode5 /* var pexprnode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : AAssertExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AGeExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */; +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_nodearraylist5 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var3; +var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var4; -var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var5; -var_tkwassertnode2 = var_nodearraylist1; -/* isa nullable TKwassert */ -cltype = type_nullable_parser_nodes__TKwassert.color; -idtype = type_nullable_parser_nodes__TKwassert.id; -if(var_tkwassertnode2 == NULL) { -var6 = 1; +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(cltype >= var_tkwassertnode2->type->table_size) { -var6 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var6 = var_tkwassertnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26289); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26741); +show_backtrace(1); } -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype8 = type_nullable_parser_nodes__TId.color; -idtype9 = type_nullable_parser_nodes__TId.id; -if(var_tidnode3 == NULL) { -var7 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype8 >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype8] == idtype9; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var7) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26291); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26743); +show_backtrace(1); +} +var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGeExpr__init_ageexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_ageexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +RET_LABEL:; } -var_pexprnode4 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype11 = type_nullable_parser_nodes__AExpr.color; -idtype12 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { -var10 = 1; +/* method parser#ReduceAction729#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction729__action(val* self, val* p0) { +parser__ReduceAction729__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction730#action for (self: ReduceAction730, Parser) */ +void parser__ReduceAction730__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AGgExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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(cltype11 >= var_pexprnode4->type->table_size) { -var10 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var10 = var_pexprnode4->type->type_table[cltype11] == idtype12; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var10) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26293); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26762); +show_backtrace(1); } -var_pexprnode5 = var_nodearraylist5; -/* isa nullable AExpr */ -cltype14 = type_nullable_parser_nodes__AExpr.color; -idtype15 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var13 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype14 >= var_pexprnode5->type->table_size) { -var13 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var13 = var_pexprnode5->type->type_table[cltype14] == idtype15; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var13) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26295); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26764); +show_backtrace(1); } -var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); -((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var16, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on */; -CHECK_NEW_parser_nodes__AAssertExpr(var16); -var_pexprnode1 = var16; +var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGgExpr__init_aggexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aggexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction704#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) { -parser__ReduceAction704__action(self, p0); +/* method parser#ReduceAction730#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction730__action(val* self, val* p0) { +parser__ReduceAction730__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */ -void parser__ReduceAction705__action(val* self, val* p0) { +/* method parser#ReduceAction731#action for (self: ReduceAction731, Parser) */ +void parser__ReduceAction731__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; -short int var3 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : AAssertExpr */; -val* var8 /* : null */; -val* var9 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AStarshipExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */; long var10 /* : Int */; long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var_tkwassertnode2 = var_nodearraylist1; -/* isa nullable TKwassert */ -cltype = type_nullable_parser_nodes__TKwassert.color; -idtype = type_nullable_parser_nodes__TKwassert.id; -if(var_tkwassertnode2 == NULL) { -var3 = 1; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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_tkwassertnode2->type->table_size) { -var3 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var3 = var_tkwassertnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var3) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26314); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26783); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist2; -/* isa nullable AExpr */ -cltype5 = type_nullable_parser_nodes__AExpr.color; -idtype6 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { -var4 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype5 >= var_pexprnode4->type->table_size) { -var4 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var4 = var_pexprnode4->type->type_table[cltype5] == idtype6; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var4) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26316); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26785); +show_backtrace(1); } -var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); -var8 = NULL; -var9 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var7, var_tkwassertnode2, var8, var_pexprnode4, var9) /* init_aassertexpr on */; -CHECK_NEW_parser_nodes__AAssertExpr(var7); -var_pexprnode1 = var7; +var9 = NEW_parser_nodes__AStarshipExpr(&type_parser_nodes__AStarshipExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarshipExpr__init_astarshipexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarshipexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction705#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) { -parser__ReduceAction705__action(self, p0); +/* method parser#ReduceAction731#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction731__action(val* self, val* p0) { +parser__ReduceAction731__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */ -void parser__ReduceAction706__action(val* self, val* p0) { +/* method parser#ReduceAction732#action for (self: ReduceAction732, Parser) */ +void parser__ReduceAction732__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : AAssertExpr */; -val* var12 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */; -long var13 /* : Int */; -long var14 /* : Int */; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AIsaExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var_tkwassertnode2 = var_nodearraylist1; -/* isa nullable TKwassert */ -cltype = type_nullable_parser_nodes__TKwassert.color; -idtype = type_nullable_parser_nodes__TKwassert.id; -if(var_tkwassertnode2 == NULL) { -var4 = 1; -} else { -if(cltype >= var_tkwassertnode2->type->table_size) { -var4 = 0; -} else { -var4 = var_tkwassertnode2->type->type_table[cltype] == idtype; -} -} -if (!var4) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26336); -exit(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) { +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +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(cltype6 >= var_tidnode3->type->table_size) { +if(cltype >= var_pexprnode2->type->table_size) { var5 = 0; } else { -var5 = var_tidnode3->type->type_table[cltype6] == idtype7; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26338); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26804); +show_backtrace(1); } -var_pexprnode4 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype9 = type_nullable_parser_nodes__AExpr.color; -idtype10 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode4 == NULL) { -var8 = 1; +var_ptypenode3 = var_nodearraylist4; +/* isa nullable AType */ +cltype7 = type_nullable_parser_nodes__AType.color; +idtype8 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var6 = 1; } else { -if(cltype9 >= var_pexprnode4->type->table_size) { -var8 = 0; +if(cltype7 >= var_ptypenode3->type->table_size) { +var6 = 0; } else { -var8 = var_pexprnode4->type->type_table[cltype9] == idtype10; +var6 = var_ptypenode3->type->type_table[cltype7] == idtype8; } } -if (!var8) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26340); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26806); +show_backtrace(1); } -var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr); -var12 = NULL; -((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var11, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var12) /* init_aassertexpr on */; -CHECK_NEW_parser_nodes__AAssertExpr(var11); -var_pexprnode1 = var11; +var9 = NEW_parser_nodes__AIsaExpr(&type_parser_nodes__AIsaExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIsaExpr__init_aisaexpr]))(var9, var_pexprnode2, var_ptypenode3) /* init_aisaexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction706#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) { -parser__ReduceAction706__action(self, p0); +/* method parser#ReduceAction732#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction732__action(val* self, val* p0) { +parser__ReduceAction732__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */ -void parser__ReduceAction707__action(val* self, val* p0) { +/* method parser#ReduceAction734#action for (self: ReduceAction734, Parser) */ +void parser__ReduceAction734__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tidnode1 /* var tidnode1: nullable Object */; -long var3 /* : Int */; -long var4 /* : Int */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : APlusExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var2; -var_tidnode1 = var_nodearraylist1; -var_node_list = var_tidnode1; -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 */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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 (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26825); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; +} else { +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; +} else { +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +} +} +if (!var6) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26827); +show_backtrace(1); +} +var9 = NEW_parser_nodes__APlusExpr(&type_parser_nodes__APlusExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APlusExpr__init_aplusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aplusexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction707#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) { -parser__ReduceAction707__action(self, p0); +/* method parser#ReduceAction734#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction734__action(val* self, val* p0) { +parser__ReduceAction734__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */ -void parser__ReduceAction710__action(val* self, val* p0) { +/* method parser#ReduceAction735#action for (self: ReduceAction735, Parser) */ +void parser__ReduceAction735__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* var_tkwifnode2 /* var tkwifnode2: nullable Object */; -short int var12 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_tkwthennode4 /* var tkwthennode4: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -val* var28 /* : AIfexprExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */; -long var29 /* : Int */; -long var30 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AMinusExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */; +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_nodearraylist11 = var1; +var_nodearraylist4 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist10 = var2; +var_nodearraylist3 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist9 = var3; +var_nodearraylist2 = 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; -var_tkwifnode2 = var_nodearraylist1; -/* isa nullable TKwif */ -cltype = type_nullable_parser_nodes__TKwif.color; -idtype = type_nullable_parser_nodes__TKwif.id; -if(var_tkwifnode2 == NULL) { -var12 = 1; +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(cltype >= var_tkwifnode2->type->table_size) { -var12 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var12 = var_tkwifnode2->type->type_table[cltype] == idtype; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var12) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26380); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26846); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; +var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ -cltype14 = type_nullable_parser_nodes__AExpr.color; -idtype15 = type_nullable_parser_nodes__AExpr.id; +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var13 = 1; -} else { -if(cltype14 >= var_pexprnode3->type->table_size) { -var13 = 0; -} else { -var13 = var_pexprnode3->type->type_table[cltype14] == idtype15; -} -} -if (!var13) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26382); -exit(1); -} -var_tkwthennode4 = var_nodearraylist5; -/* isa nullable TKwthen */ -cltype17 = type_nullable_parser_nodes__TKwthen.color; -idtype18 = type_nullable_parser_nodes__TKwthen.id; -if(var_tkwthennode4 == NULL) { -var16 = 1; +var6 = 1; } else { -if(cltype17 >= var_tkwthennode4->type->table_size) { -var16 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var16) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26384); -exit(1); -} -var_pexprnode5 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype20 = type_nullable_parser_nodes__AExpr.color; -idtype21 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode5 == NULL) { -var19 = 1; -} else { -if(cltype20 >= var_pexprnode5->type->table_size) { -var19 = 0; -} else { -var19 = var_pexprnode5->type->type_table[cltype20] == idtype21; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26848); +show_backtrace(1); } +var9 = NEW_parser_nodes__AMinusExpr(&type_parser_nodes__AMinusExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AMinusExpr__init_aminusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aminusexpr on */; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +RET_LABEL:; } -if (!var19) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26386); -exit(1); +/* method parser#ReduceAction735#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction735__action(val* self, val* p0) { +parser__ReduceAction735__action(self, p0); +RET_LABEL:; } -var_tkwelsenode6 = var_nodearraylist9; -/* isa nullable TKwelse */ -cltype23 = type_nullable_parser_nodes__TKwelse.color; -idtype24 = type_nullable_parser_nodes__TKwelse.id; -if(var_tkwelsenode6 == NULL) { -var22 = 1; +/* method parser#ReduceAction737#action for (self: ReduceAction737, Parser) */ +void parser__ReduceAction737__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : AStarExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */; +long var10 /* : Int */; +long var11 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +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(cltype23 >= var_tkwelsenode6->type->table_size) { -var22 = 0; +if(cltype >= var_pexprnode2->type->table_size) { +var5 = 0; } else { -var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24; +var5 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var22) { +if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26388); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26867); +show_backtrace(1); } -var_pexprnode7 = var_nodearraylist11; -/* isa nullable AExpr */ -cltype26 = type_nullable_parser_nodes__AExpr.color; -idtype27 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode7 == NULL) { -var25 = 1; +var_pexprnode3 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype7 = type_nullable_parser_nodes__AExpr.color; +idtype8 = type_nullable_parser_nodes__AExpr.id; +if(var_pexprnode3 == NULL) { +var6 = 1; } else { -if(cltype26 >= var_pexprnode7->type->table_size) { -var25 = 0; +if(cltype7 >= var_pexprnode3->type->table_size) { +var6 = 0; } else { -var25 = var_pexprnode7->type->type_table[cltype26] == idtype27; +var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } } -if (!var25) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26390); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26869); +show_backtrace(1); } -var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr); -((void (*)(val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AIfexprExpr__init_aifexprexpr]))(var28, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7) /* init_aifexprexpr on */; -CHECK_NEW_parser_nodes__AIfexprExpr(var28); -var_pexprnode1 = var28; +var9 = NEW_parser_nodes__AStarExpr(&type_parser_nodes__AStarExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarExpr__init_astarexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarexpr on */; +var_pexprnode1 = var9; var_node_list = var_pexprnode1; -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 */; +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction710#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) { -parser__ReduceAction710__action(self, p0); +/* method parser#ReduceAction737#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction737__action(val* self, val* p0) { +parser__ReduceAction737__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction712#action for (self: ReduceAction712, Parser) */ -void parser__ReduceAction712__action(val* self, val* p0) { +/* method parser#ReduceAction738#action for (self: ReduceAction738, Parser) */ +void parser__ReduceAction738__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -8884,8 +8463,8 @@ val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var9 /* : AOrExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */; +val* var9 /* : ASlashExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */; long var10 /* : Int */; long var11 /* : Int */; var_p = p0; @@ -8914,8 +8493,8 @@ var5 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26413); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26888); +show_backtrace(1); } var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ @@ -8932,26 +8511,25 @@ var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26415); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26890); +show_backtrace(1); } -var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AOrExpr__init_aorexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aorexpr on */; -CHECK_NEW_parser_nodes__AOrExpr(var9); +var9 = NEW_parser_nodes__ASlashExpr(&type_parser_nodes__ASlashExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ASlashExpr__init_aslashexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aslashexpr on */; var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction712#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction712__action(val* self, val* p0) { -parser__ReduceAction712__action(self, p0); +/* method parser#ReduceAction738#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction738__action(val* self, val* p0) { +parser__ReduceAction738__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction713#action for (self: ReduceAction713, Parser) */ -void parser__ReduceAction713__action(val* self, val* p0) { +/* method parser#ReduceAction739#action for (self: ReduceAction739, Parser) */ +void parser__ReduceAction739__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -8971,8 +8549,8 @@ val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var9 /* : AAndExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */; +val* var9 /* : APercentExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */; long var10 /* : Int */; long var11 /* : Int */; var_p = p0; @@ -9001,8 +8579,8 @@ var5 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26434); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26909); +show_backtrace(1); } var_pexprnode3 = var_nodearraylist4; /* isa nullable AExpr */ @@ -9019,26 +8597,299 @@ var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26436); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26911); +show_backtrace(1); } -var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAndExpr__init_aandexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aandexpr on */; -CHECK_NEW_parser_nodes__AAndExpr(var9); +var9 = NEW_parser_nodes__APercentExpr(&type_parser_nodes__APercentExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APercentExpr__init_apercentexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_apercentexpr on */; var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction713#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction713__action(val* self, val* p0) { -parser__ReduceAction713__action(self, p0); +/* method parser#ReduceAction739#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction739__action(val* self, val* p0) { +parser__ReduceAction739__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction741#action for (self: ReduceAction741, Parser) */ +void parser__ReduceAction741__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_tminusnode2 /* var tminusnode2: 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* var8 /* : AUminusExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var3; +var_tminusnode2 = var_nodearraylist1; +/* isa nullable TMinus */ +cltype = type_nullable_parser_nodes__TMinus.color; +idtype = type_nullable_parser_nodes__TMinus.id; +if(var_tminusnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_tminusnode2->type->table_size) { +var4 = 0; +} else { +var4 = var_tminusnode2->type->type_table[cltype] == idtype; +} +} +if (!var4) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26929); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist3; +/* 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(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; +} +} +if (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26931); +show_backtrace(1); +} +var8 = NEW_parser_nodes__AUminusExpr(&type_parser_nodes__AUminusExpr); +((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AUminusExpr__init_auminusexpr]))(var8, var_tminusnode2, var_pexprnode3) /* init_auminusexpr on */; +var_pexprnode1 = var8; +var_node_list = var_pexprnode1; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction741#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction741__action(val* self, val* p0) { +parser__ReduceAction741__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction742#action for (self: ReduceAction742, Parser) */ +void parser__ReduceAction742__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_tkwoncenode2 /* var tkwoncenode2: 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* var8 /* : AOnceExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var3; +var_tkwoncenode2 = var_nodearraylist1; +/* isa nullable TKwonce */ +cltype = type_nullable_parser_nodes__TKwonce.color; +idtype = type_nullable_parser_nodes__TKwonce.id; +if(var_tkwoncenode2 == NULL) { +var4 = 1; +} else { +if(cltype >= var_tkwoncenode2->type->table_size) { +var4 = 0; +} else { +var4 = var_tkwoncenode2->type->type_table[cltype] == idtype; +} +} +if (!var4) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26949); +show_backtrace(1); +} +var_pexprnode3 = var_nodearraylist3; +/* 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(cltype6 >= var_pexprnode3->type->table_size) { +var5 = 0; +} else { +var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; +} +} +if (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26951); +show_backtrace(1); +} +var8 = NEW_parser_nodes__AOnceExpr(&type_parser_nodes__AOnceExpr); +((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AOnceExpr__init_aonceexpr]))(var8, var_tkwoncenode2, var_pexprnode3) /* init_aonceexpr on */; +var_pexprnode1 = var8; +var_node_list = var_pexprnode1; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction742#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction742__action(val* self, val* p0) { +parser__ReduceAction742__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction744#action for (self: ReduceAction744, Parser) */ +void parser__ReduceAction744__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var /* : null */; +val* var_node_list /* var node_list: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */; +short int var5 /* : Bool */; +int cltype; +int idtype; +val* var_ptypenode3 /* var ptypenode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pexprsnode5 /* var pexprsnode5: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var12 /* : ANewExpr */; +val* var13 /* : null */; +val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var2; +var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var4; +var_tkwnewnode2 = var_nodearraylist1; +/* isa nullable TKwnew */ +cltype = type_nullable_parser_nodes__TKwnew.color; +idtype = type_nullable_parser_nodes__TKwnew.id; +if(var_tkwnewnode2 == NULL) { +var5 = 1; +} else { +if(cltype >= var_tkwnewnode2->type->table_size) { +var5 = 0; +} else { +var5 = var_tkwnewnode2->type->type_table[cltype] == idtype; +} +} +if (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26970); +show_backtrace(1); +} +var_ptypenode3 = var_nodearraylist3; +/* isa nullable AType */ +cltype7 = type_nullable_parser_nodes__AType.color; +idtype8 = type_nullable_parser_nodes__AType.id; +if(var_ptypenode3 == NULL) { +var6 = 1; +} else { +if(cltype7 >= var_ptypenode3->type->table_size) { +var6 = 0; +} else { +var6 = var_ptypenode3->type->type_table[cltype7] == idtype8; +} +} +if (!var6) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26972); +show_backtrace(1); +} +var_pexprsnode5 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype10 = type_nullable_parser_nodes__AExprs.color; +idtype11 = type_nullable_parser_nodes__AExprs.id; +if(var_pexprsnode5 == NULL) { +var9 = 1; +} else { +if(cltype10 >= var_pexprsnode5->type->table_size) { +var9 = 0; +} else { +var9 = var_pexprsnode5->type->type_table[cltype10] == idtype11; +} +} +if (!var9) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26974); +show_backtrace(1); +} +var12 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr); +var13 = NULL; +((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var12, var_tkwnewnode2, var_ptypenode3, var13, var_pexprsnode5) /* init_anewexpr on */; +var_pexprnode1 = var12; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction744#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction744__action(val* self, val* p0) { +parser__ReduceAction744__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */ -void parser__ReduceAction714__action(val* self, val* p0) { +/* method parser#ReduceAction745#action for (self: ReduceAction745, Parser) */ +void parser__ReduceAction745__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -9052,7 +8903,7 @@ 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 */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; short int var6 /* : Bool */; int cltype; int idtype; @@ -9060,10 +8911,14 @@ val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var7 /* : Bool */; int cltype8; int idtype9; -val* var10 /* : AOrElseExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */; -long var11 /* : Int */; -long var12 /* : Int */; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; +long var14 /* : Int */; +long var15 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -9077,25 +8932,25 @@ var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var4; var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; 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) { +var_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= var_tkwissetnode2->type->table_size) { var6 = 0; } else { -var6 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = var_tkwissetnode2->type->type_table[cltype] == idtype; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26456); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26996); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist5; +var_pexprnode3 = var_nodearraylist2; /* isa nullable AExpr */ cltype8 = type_nullable_parser_nodes__AExpr.color; idtype9 = type_nullable_parser_nodes__AExpr.id; @@ -9110,283 +8965,449 @@ var7 = var_pexprnode3->type->type_table[cltype8] == idtype9; } if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26458); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26998); +show_backtrace(1); } -var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr); -((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AOrElseExpr__init_aorelseexpr]))(var10, var_pexprnode2, var_pexprnode3) /* init_aorelseexpr on */; -CHECK_NEW_parser_nodes__AOrElseExpr(var10); -var_pexprnode1 = var10; +var_tattridnode4 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype11 = type_nullable_parser_nodes__TAttrid.color; +idtype12 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { +var10 = 1; +} else { +if(cltype11 >= var_tattridnode4->type->table_size) { +var10 = 0; +} else { +var10 = var_tattridnode4->type->type_table[cltype11] == idtype12; +} +} +if (!var10) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27000); +show_backtrace(1); +} +var13 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var13, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; +var_pexprnode1 = var13; var_node_list = var_pexprnode1; -var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on */; +var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction714#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) { -parser__ReduceAction714__action(self, p0); +/* method parser#ReduceAction745#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction745__action(val* self, val* p0) { +parser__ReduceAction745__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction715#action for (self: ReduceAction715, Parser) */ -void parser__ReduceAction715__action(val* self, val* p0) { +/* method parser#ReduceAction746#action for (self: ReduceAction746, Parser) */ +void parser__ReduceAction746__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; +long var9 /* : Int */; +long var10 /* : Int */; +var_p = p0; +var = NULL; +var_node_list = var; +var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var1; +var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var2; +var_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= var_tkwissetnode2->type->table_size) { +var3 = 0; +} else { +var3 = var_tkwissetnode2->type->type_table[cltype] == idtype; +} +} +if (!var3) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27018); +show_backtrace(1); +} +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; +var_pexprnode3 = var4; +var_tattridnode4 = var_nodearraylist2; +/* isa nullable TAttrid */ +cltype6 = type_nullable_parser_nodes__TAttrid.color; +idtype7 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { +var5 = 1; +} else { +if(cltype6 >= var_tattridnode4->type->table_size) { +var5 = 0; +} else { +var5 = var_tattridnode4->type->type_table[cltype6] == idtype7; +} +} +if (!var5) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27021); +show_backtrace(1); +} +var8 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var8, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; +var_pexprnode1 = var8; +var_node_list = var_pexprnode1; +var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +RET_LABEL:; +} +/* method parser#ReduceAction746#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction746__action(val* self, val* p0) { +parser__ReduceAction746__action(self, p0); +RET_LABEL:; +} +/* method parser#ReduceAction747#action for (self: ReduceAction747, Parser) */ +void parser__ReduceAction747__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_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AImpliesExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; +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_nodearraylist4 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -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; +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_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { +var7 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +if(cltype >= var_tkwissetnode2->type->table_size) { +var7 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = var_tkwissetnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26477); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27043); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist4; +var_pexprnode3 = var_nodearraylist2; /* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; +cltype9 = type_nullable_parser_nodes__AExpr.color; +idtype10 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var6 = 1; +var8 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype9 >= var_pexprnode3->type->table_size) { +var8 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var8 = var_pexprnode3->type->type_table[cltype9] == idtype10; } } -if (!var6) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26479); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27045); +show_backtrace(1); } -var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AImpliesExpr__init_aimpliesexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aimpliesexpr on */; -CHECK_NEW_parser_nodes__AImpliesExpr(var9); -var_pexprnode1 = var9; +var_tattridnode4 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype12 = type_nullable_parser_nodes__TAttrid.color; +idtype13 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= var_tattridnode4->type->table_size) { +var11 = 0; +} else { +var11 = var_tattridnode4->type->type_table[cltype12] == idtype13; +} +} +if (!var11) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27047); +show_backtrace(1); +} +var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +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#ReduceAction715#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction715__action(val* self, val* p0) { -parser__ReduceAction715__action(self, p0); +/* method parser#ReduceAction747#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction747__action(val* self, val* p0) { +parser__ReduceAction747__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction717#action for (self: ReduceAction717, Parser) */ -void parser__ReduceAction717__action(val* self, val* p0) { +/* method parser#ReduceAction748#action for (self: ReduceAction748, Parser) */ +void parser__ReduceAction748__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -val* var8 /* : ANotExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */; -long var9 /* : Int */; -long var10 /* : Int */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; +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_nodearraylist3 = var1; +var_nodearraylist7 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var2; +var_nodearraylist6 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var3; -var_tkwnotnode2 = var_nodearraylist1; -/* isa nullable TKwnot */ -cltype = type_nullable_parser_nodes__TKwnot.color; -idtype = type_nullable_parser_nodes__TKwnot.id; -if(var_tkwnotnode2 == NULL) { -var4 = 1; +var_nodearraylist5 = var3; +var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist4 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist3 = var5; +var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist2 = var6; +var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +var_nodearraylist1 = var7; +var_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_tkwnotnode2->type->table_size) { -var4 = 0; +if(cltype >= var_tkwissetnode2->type->table_size) { +var8 = 0; } else { -var4 = var_tkwnotnode2->type->type_table[cltype] == idtype; +var8 = var_tkwissetnode2->type->type_table[cltype] == idtype; } } -if (!var4) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26497); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27070); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist3; +var_pexprnode3 = var_nodearraylist2; /* isa nullable AExpr */ -cltype6 = type_nullable_parser_nodes__AExpr.color; -idtype7 = type_nullable_parser_nodes__AExpr.id; +cltype10 = type_nullable_parser_nodes__AExpr.color; +idtype11 = type_nullable_parser_nodes__AExpr.id; if(var_pexprnode3 == NULL) { -var5 = 1; +var9 = 1; +} else { +if(cltype10 >= var_pexprnode3->type->table_size) { +var9 = 0; +} else { +var9 = var_pexprnode3->type->type_table[cltype10] == idtype11; +} +} +if (!var9) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27072); +show_backtrace(1); +} +var_tattridnode4 = var_nodearraylist7; +/* isa nullable TAttrid */ +cltype13 = type_nullable_parser_nodes__TAttrid.color; +idtype14 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { +var12 = 1; } else { -if(cltype6 >= var_pexprnode3->type->table_size) { -var5 = 0; +if(cltype13 >= var_tattridnode4->type->table_size) { +var12 = 0; } else { -var5 = var_pexprnode3->type->type_table[cltype6] == idtype7; +var12 = var_tattridnode4->type->type_table[cltype13] == idtype14; } } -if (!var5) { +if (!var12) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26499); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27074); +show_backtrace(1); } -var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr); -((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ANotExpr__init_anotexpr]))(var8, var_tkwnotnode2, var_pexprnode3) /* init_anotexpr on */; -CHECK_NEW_parser_nodes__ANotExpr(var8); -var_pexprnode1 = var8; +var15 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var15, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on */; +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#ReduceAction717#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction717__action(val* self, val* p0) { -parser__ReduceAction717__action(self, p0); +/* method parser#ReduceAction748#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction748__action(val* self, val* p0) { +parser__ReduceAction748__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */ -void parser__ReduceAction719__action(val* self, val* p0) { +/* method parser#ReduceAction750#action for (self: ReduceAction750, Parser) */ +void parser__ReduceAction750__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; +val* var5 /* : AImplicitSelfExpr */; +val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var9 /* : AEqExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */; +val* var9 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; long var10 /* : Int */; long var11 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -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; +var_nodearraylist1 = var3; +var_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { +var4 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +if(cltype >= var_tkwissetnode2->type->table_size) { +var4 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var4 = var_tkwissetnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26518); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27093); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { +var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on */; +var_pexprnode3 = var5; +var_tattridnode4 = var_nodearraylist3; +/* isa nullable TAttrid */ +cltype7 = type_nullable_parser_nodes__TAttrid.color; +idtype8 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { var6 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { +if(cltype7 >= var_tattridnode4->type->table_size) { var6 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var6 = var_tattridnode4->type->type_table[cltype7] == idtype8; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26520); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27096); +show_backtrace(1); } -var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEqExpr__init_aeqexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeqexpr on */; -CHECK_NEW_parser_nodes__AEqExpr(var9); +var9 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var9, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction719#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) { -parser__ReduceAction719__action(self, p0); +/* method parser#ReduceAction750#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction750__action(val* self, val* p0) { +parser__ReduceAction750__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction720#action for (self: ReduceAction720, Parser) */ -void parser__ReduceAction720__action(val* self, val* p0) { +/* method parser#ReduceAction751#action for (self: ReduceAction751, Parser) */ +void parser__ReduceAction751__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -9398,18 +9419,20 @@ val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; +val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : ANeExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */; -long var10 /* : Int */; +val* var6 /* : AImplicitSelfExpr */; +val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */; +val* var_tattridnode4 /* var tattridnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : AIssetAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */; long var11 /* : Int */; +long var12 /* : Int */; var_p = p0; var = NULL; var_node_list = var; @@ -9421,59 +9444,61 @@ var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) / var_nodearraylist2 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; 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) { +var_tkwissetnode2 = var_nodearraylist1; +/* isa nullable TKwisset */ +cltype = type_nullable_parser_nodes__TKwisset.color; +idtype = type_nullable_parser_nodes__TKwisset.id; +if(var_tkwissetnode2 == NULL) { var5 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= var_tkwissetnode2->type->table_size) { var5 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var5 = var_tkwissetnode2->type->type_table[cltype] == idtype; } } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26539); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27116); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; +var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on */; +var_pexprnode3 = var6; +var_tattridnode4 = var_nodearraylist4; +/* isa nullable TAttrid */ +cltype8 = type_nullable_parser_nodes__TAttrid.color; +idtype9 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode4 == NULL) { +var7 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype8 >= var_tattridnode4->type->table_size) { +var7 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var7 = var_tattridnode4->type->type_table[cltype8] == idtype9; } } -if (!var6) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26541); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27119); +show_backtrace(1); } -var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ANeExpr__init_aneexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aneexpr on */; -CHECK_NEW_parser_nodes__ANeExpr(var9); -var_pexprnode1 = var9; +var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr); +((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on */; +var_pexprnode1 = var10; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction720#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction720__action(val* self, val* p0) { -parser__ReduceAction720__action(self, p0); +/* method parser#ReduceAction751#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction751__action(val* self, val* p0) { +parser__ReduceAction751__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */ -void parser__ReduceAction721__action(val* self, val* p0) { +/* method parser#ReduceAction753#action for (self: ReduceAction753, Parser) */ +void parser__ReduceAction753__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; @@ -9489,12 +9514,12 @@ val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var9 /* : ALtExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */; +val* var9 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; long var10 /* : Int */; long var11 /* : Int */; var_p = p0; @@ -9523,474 +9548,405 @@ var5 = var_pexprnode2->type->type_table[cltype] == idtype; } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26560); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27139); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { +var_tattridnode3 = var_nodearraylist4; +/* isa nullable TAttrid */ +cltype7 = type_nullable_parser_nodes__TAttrid.color; +idtype8 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { var6 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { +if(cltype7 >= var_tattridnode3->type->table_size) { var6 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var6 = var_tattridnode3->type->type_table[cltype7] == idtype8; } } if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26562); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27141); +show_backtrace(1); } -var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALtExpr__init_altexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_altexpr on */; -CHECK_NEW_parser_nodes__ALtExpr(var9); +var9 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var9, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; var_pexprnode1 = var9; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction721#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) { -parser__ReduceAction721__action(self, p0); +/* method parser#ReduceAction753#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction753__action(val* self, val* p0) { +parser__ReduceAction753__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction722#action for (self: ReduceAction722, Parser) */ -void parser__ReduceAction722__action(val* self, val* p0) { +/* method parser#ReduceAction754#action for (self: ReduceAction754, Parser) */ +void parser__ReduceAction754__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +val* var2 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : ALeExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +val* var4 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; +long var5 /* : Int */; +long var6 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; -var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -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 (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26581); -exit(1); -} -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; +var_nodearraylist1 = var1; +var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var2->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var2) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var2; +var_tattridnode3 = var_nodearraylist1; +/* isa nullable TAttrid */ +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var3 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var3 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var3 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var3) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26583); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27158); +show_backtrace(1); } -var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALeExpr__init_aleexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aleexpr on */; -CHECK_NEW_parser_nodes__ALeExpr(var9); -var_pexprnode1 = var9; +var4 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var4, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; +var_pexprnode1 = var4; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction722#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction722__action(val* self, val* p0) { -parser__ReduceAction722__action(self, p0); +/* method parser#ReduceAction754#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction754__action(val* self, val* p0) { +parser__ReduceAction754__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */ -void parser__ReduceAction723__action(val* self, val* p0) { +/* method parser#ReduceAction755#action for (self: ReduceAction755, Parser) */ +void parser__ReduceAction755__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : ALlExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */; -long var10 /* : Int */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; long var11 /* : Int */; +long var12 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist5 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist4 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist3 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; +var_nodearraylist2 = var4; +var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; +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) { -var5 = 1; +var6 = 1; } else { if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +var6 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var6) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26602); -exit(1); -} -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27178); +show_backtrace(1); +} +var_tattridnode3 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype8 = type_nullable_parser_nodes__TAttrid.color; +idtype9 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var7 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype8 >= var_tattridnode3->type->table_size) { +var7 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var7 = var_tattridnode3->type->type_table[cltype8] == idtype9; } } -if (!var6) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26604); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27180); +show_backtrace(1); } -var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALlExpr__init_allexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_allexpr on */; -CHECK_NEW_parser_nodes__ALlExpr(var9); -var_pexprnode1 = var9; +var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var10, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; +var_pexprnode1 = var10; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction723#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) { -parser__ReduceAction723__action(self, p0); +/* method parser#ReduceAction755#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction755__action(val* self, val* p0) { +parser__ReduceAction755__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */ -void parser__ReduceAction724__action(val* self, val* p0) { +/* method parser#ReduceAction756#action for (self: ReduceAction756, Parser) */ +void parser__ReduceAction756__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AGtExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; +long var12 /* : Int */; +long var13 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist6 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; +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_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; +var7 = 1; } else { if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +var7 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = var_pexprnode2->type->type_table[cltype] == idtype; } } -if (!var5) { +if (!var7) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26623); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27201); +show_backtrace(1); } -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; +var_tattridnode3 = var_nodearraylist6; +/* isa nullable TAttrid */ +cltype9 = type_nullable_parser_nodes__TAttrid.color; +idtype10 = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { +var8 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype9 >= var_tattridnode3->type->table_size) { +var8 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var8 = var_tattridnode3->type->type_table[cltype9] == idtype10; } } -if (!var6) { +if (!var8) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26625); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27203); +show_backtrace(1); } -var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGtExpr__init_agtexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_agtexpr on */; -CHECK_NEW_parser_nodes__AGtExpr(var9); -var_pexprnode1 = var9; +var11 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var11, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; +var_pexprnode1 = var11; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ +var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on */; +((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on */; RET_LABEL:; } -/* method parser#ReduceAction724#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) { -parser__ReduceAction724__action(self, p0); +/* method parser#ReduceAction756#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction756__action(val* self, val* p0) { +parser__ReduceAction756__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction725#action for (self: ReduceAction725, Parser) */ -void parser__ReduceAction725__action(val* self, val* p0) { +/* method parser#ReduceAction758#action for (self: ReduceAction758, Parser) */ +void parser__ReduceAction758__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +val* var3 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AGeExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +val* var5 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; +long var6 /* : Int */; +long var7 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist2 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; -var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -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 (!var5) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26644); -exit(1); -} -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; +var_nodearraylist1 = var2; +var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var3; +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) { +var4 = 1; } else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; +if(cltype >= var_tattridnode3->type->table_size) { +var4 = 0; } else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; +var4 = var_tattridnode3->type->type_table[cltype] == idtype; } } -if (!var6) { +if (!var4) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26646); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27221); +show_backtrace(1); } -var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGeExpr__init_ageexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_ageexpr on */; -CHECK_NEW_parser_nodes__AGeExpr(var9); -var_pexprnode1 = var9; +var5 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var5, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; +var_pexprnode1 = var5; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +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#ReduceAction725#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction725__action(val* self, val* p0) { -parser__ReduceAction725__action(self, p0); +/* method parser#ReduceAction758#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction758__action(val* self, val* p0) { +parser__ReduceAction758__action(self, p0); RET_LABEL:; } -/* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */ -void parser__ReduceAction726__action(val* self, val* p0) { +/* method parser#ReduceAction759#action for (self: ReduceAction759, Parser) */ +void parser__ReduceAction759__action(val* self, val* p0) { val* var_p /* var p: Parser */; val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AGgExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +val* var6 /* : AAttrExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */; +long var7 /* : Int */; +long var8 /* : Int */; var_p = p0; var = NULL; var_node_list = var; var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist4 = var1; +var_nodearraylist3 = var1; var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist3 = var2; +var_nodearraylist2 = var2; var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist2 = var3; -var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on */; -var_nodearraylist1 = var4; -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) { +var_nodearraylist1 = var3; +var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr); +((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on */; +var_pexprnode2 = var4; +var_tattridnode3 = var_nodearraylist3; +/* isa nullable TAttrid */ +cltype = type_nullable_parser_nodes__TAttrid.color; +idtype = type_nullable_parser_nodes__TAttrid.id; +if(var_tattridnode3 == NULL) { var5 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= var_tattridnode3->type->table_size) { var5 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var5 = var_tattridnode3->type->type_table[cltype] == idtype; } } if (!var5) { fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26665); -exit(1); -} -var_pexprnode3 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype7 = type_nullable_parser_nodes__AExpr.color; -idtype8 = type_nullable_parser_nodes__AExpr.id; -if(var_pexprnode3 == NULL) { -var6 = 1; -} else { -if(cltype7 >= var_pexprnode3->type->table_size) { -var6 = 0; -} else { -var6 = var_pexprnode3->type->type_table[cltype7] == idtype8; -} -} -if (!var6) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26667); -exit(1); +fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27240); +show_backtrace(1); } -var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr); -((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGgExpr__init_aggexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aggexpr on */; -CHECK_NEW_parser_nodes__AGgExpr(var9); -var_pexprnode1 = var9; +var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr); +((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var6, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on */; +var_pexprnode1 = var6; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on */ -var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on */; -((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on */; +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#ReduceAction726#action for (self: Object, Parser) */ -void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) { -parser__ReduceAction726__action(self, p0); +/* method parser#ReduceAction759#action for (self: Object, Parser) */ +void VIRTUAL_parser__ReduceAction759__action(val* self, val* p0) { +parser__ReduceAction759__action(self, p0); RET_LABEL:; }