X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__parser.sep.4.c b/c_src/nit__parser.sep.4.c index afb4293..a362a62 100644 --- a/c_src/nit__parser.sep.4.c +++ b/c_src/nit__parser.sep.4.c @@ -1,1109 +1,1027 @@ #include "nit__parser.sep.0.h" -/* method parser#ReduceAction136#action for (self: ReduceAction136, Parser) */ -void nit__parser___nit__parser__ReduceAction136___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction185#action for (self: ReduceAction185, Parser) */ +void nit__parser___nit__parser__ReduceAction185___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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* var_ptypenode2 /* var ptypenode2: nullable Object */; -short int var6 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_tdotnode3 /* var tdotnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_tkwasnode4 /* var tkwasnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_ptypenode5 /* var ptypenode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : ACastAsExternCall */; -val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var4; +var_nodearraylist3 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var5; -var_ptypenode2 = var_nodearraylist1; -/* isa nullable AType */ -cltype = type_nullable__nit__AType.color; -idtype = type_nullable__nit__AType.id; -if(var_ptypenode2 == NULL) { -var6 = 1; -} else { -if(cltype >= var_ptypenode2->type->table_size) { -var6 = 0; -} else { -var6 = var_ptypenode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var6)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4960); -show_backtrace(1); +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_tdotnode3 = var_nodearraylist2; -/* isa nullable TDot */ -cltype8 = type_nullable__nit__TDot.color; -idtype9 = type_nullable__nit__TDot.id; -if(var_tdotnode3 == NULL) { +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { var7 = 1; } else { -if(cltype8 >= var_tdotnode3->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var7 = 0; } else { -var7 = var_tdotnode3->type->type_table[cltype8] == idtype9; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4962); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5367); +fatal_exit(1); } -var_tkwasnode4 = var_nodearraylist3; -/* isa nullable TKwas */ -cltype11 = type_nullable__nit__TKwas.color; -idtype12 = type_nullable__nit__TKwas.id; -if(var_tkwasnode4 == NULL) { -var10 = 1; +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype9 = type_nullable__nit__TId.color; +idtype10 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype11 >= var_tkwasnode4->type->table_size) { -var10 = 0; +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var8 = 0; } else { -var10 = var_tkwasnode4->type->type_table[cltype11] == idtype12; +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var10)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4964); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5369); +fatal_exit(1); } -var_ptypenode5 = var_nodearraylist5; -/* isa nullable AType */ -cltype14 = type_nullable__nit__AType.color; -idtype15 = type_nullable__nit__AType.id; -if(var_ptypenode5 == NULL) { -var13 = 1; +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype12 = type_nullable__nit__AExprs.color; +idtype13 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; } else { -if(cltype14 >= var_ptypenode5->type->table_size) { -var13 = 0; +if(cltype12 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var11 = 0; } else { -var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; +var11 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype12] == idtype13; } } -if (unlikely(!var13)) { +if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4966); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5371); +fatal_exit(1); } -var16 = NEW_nit__ACastAsExternCall(&type_nit__ACastAsExternCall); +var14 = NEW_nit__ACallExpr(&type_nit__ACallExpr); { -nit__parser_prod___ACastAsExternCall___init_acastasexterncall(var16, var_ptypenode2, var_tdotnode3, var_tkwasnode4, var_ptypenode5); /* Direct call parser_prod#ACastAsExternCall#init_acastasexterncall on */ +nit__parser_prod___ACallExpr___init_acallexpr(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ } -var_pexterncallnode1 = var16; -var_node_list = var_pexterncallnode1; -var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var18 = nit___nit__Parser___go_to(var_p, var17); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction137#action for (self: ReduceAction137, Parser) */ -void nit__parser___nit__parser__ReduceAction137___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction187#action for (self: ReduceAction187, Parser) */ +void nit__parser___nit__parser__ReduceAction187___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_ptypenode2 /* var ptypenode2: nullable Object */; -short int var10 /* : Bool */; +val* var2 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AAsNullableExternCall */; -val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */; -long var18 /* : Int */; -long var19 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var8 /* : Int */; +long var9 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist9 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist8 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist7 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist6 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist5 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var6; +var_node_list = ((val*)NULL); { -var7 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var7; +var_nodearraylist2 = var; { -var8 = nit___nit__Parser___pop(var_p); +var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var8; +var_nodearraylist1 = var1; +var2 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var9 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var9; -var_ptypenode2 = var_nodearraylist1; -/* isa nullable AType */ -cltype = type_nullable__nit__AType.color; -idtype = type_nullable__nit__AType.id; -if(var_ptypenode2 == NULL) { -var10 = 1; -} else { -if(cltype >= var_ptypenode2->type->table_size) { -var10 = 0; -} else { -var10 = var_ptypenode2->type->type_table[cltype] == idtype; -} +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var2); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -if (unlikely(!var10)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4992); -show_backtrace(1); -} -var_tkwasnode3 = var_nodearraylist3; -/* isa nullable TKwas */ -cltype12 = type_nullable__nit__TKwas.color; -idtype13 = type_nullable__nit__TKwas.id; -if(var_tkwasnode3 == NULL) { -var11 = 1; +var_pexprnode2 = var2; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var3 = 1; } else { -if(cltype12 >= var_tkwasnode3->type->table_size) { -var11 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var3 = 0; } else { -var11 = var_tkwasnode3->type->type_table[cltype12] == idtype13; +var3 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var11)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4994); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5390); +fatal_exit(1); } -var_tkwnullablenode4 = var_nodearraylist7; -/* isa nullable TKwnullable */ -cltype15 = type_nullable__nit__TKwnullable.color; -idtype16 = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode4 == NULL) { -var14 = 1; +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype5 = type_nullable__nit__AExprs.color; +idtype6 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var4 = 1; } else { -if(cltype15 >= var_tkwnullablenode4->type->table_size) { -var14 = 0; +if(cltype5 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var4 = 0; } else { -var14 = var_tkwnullablenode4->type->type_table[cltype15] == idtype16; +var4 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype5] == idtype6; } } -if (unlikely(!var14)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 4996); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5392); +fatal_exit(1); } -var17 = NEW_nit__AAsNullableExternCall(&type_nit__AAsNullableExternCall); +var7 = NEW_nit__ACallExpr(&type_nit__ACallExpr); { -nit__parser_prod___AAsNullableExternCall___init_aasnullableexterncall(var17, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4); /* Direct call parser_prod#AAsNullableExternCall#init_aasnullableexterncall on */ +nit__parser_prod___ACallExpr___init_acallexpr(var7, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ } -var_pexterncallnode1 = var17; -var_node_list = var_pexterncallnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var19 = nit___nit__Parser___go_to(var_p, var18); +var9 = nit___nit__Parser___go_to(var_p, var8); } { -nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction138#action for (self: ReduceAction138, Parser) */ -void nit__parser___nit__parser__ReduceAction138___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction188#action for (self: ReduceAction188, Parser) */ +void nit__parser___nit__parser__ReduceAction188___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var4 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_ptypenode2 /* var ptypenode2: nullable Object */; -short int var6 /* : Bool */; +val* var3 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : AAsNullableExternCall */; -val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */; -long var14 /* : Int */; -long var15 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var8 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var9 /* : Int */; +long var10 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist2 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist1 = var2; +var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var3 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist3 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var5; -var_ptypenode2 = var_nodearraylist1; -/* isa nullable AType */ -cltype = type_nullable__nit__AType.color; -idtype = type_nullable__nit__AType.id; -if(var_ptypenode2 == NULL) { -var6 = 1; -} else { -if(cltype >= var_ptypenode2->type->table_size) { -var6 = 0; -} else { -var6 = var_ptypenode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var6)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5017); -show_backtrace(1); -} -var_tkwasnode3 = var_nodearraylist3; -/* isa nullable TKwas */ -cltype8 = type_nullable__nit__TKwas.color; -idtype9 = type_nullable__nit__TKwas.id; -if(var_tkwasnode3 == NULL) { -var7 = 1; -} else { -if(cltype8 >= var_tkwasnode3->type->table_size) { -var7 = 0; -} else { -var7 = var_tkwasnode3->type->type_table[cltype8] == idtype9; +var_pexprnode2 = var3; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var4 = 1; +} else { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var4 = 0; +} else { +var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5019); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5412); +fatal_exit(1); } -var_tkwnullablenode4 = var_nodearraylist5; -/* isa nullable TKwnullable */ -cltype11 = type_nullable__nit__TKwnullable.color; -idtype12 = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode4 == NULL) { -var10 = 1; +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype6 = type_nullable__nit__AExprs.color; +idtype7 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var5 = 1; } else { -if(cltype11 >= var_tkwnullablenode4->type->table_size) { -var10 = 0; +if(cltype6 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var5 = 0; } else { -var10 = var_tkwnullablenode4->type->type_table[cltype11] == idtype12; +var5 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype6] == idtype7; } } -if (unlikely(!var10)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5021); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5414); +fatal_exit(1); } -var13 = NEW_nit__AAsNullableExternCall(&type_nit__AAsNullableExternCall); +var8 = NEW_nit__ACallExpr(&type_nit__ACallExpr); { -nit__parser_prod___AAsNullableExternCall___init_aasnullableexterncall(var13, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4); /* Direct call parser_prod#AAsNullableExternCall#init_aasnullableexterncall on */ +nit__parser_prod___ACallExpr___init_acallexpr(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ } -var_pexterncallnode1 = var13; -var_node_list = var_pexterncallnode1; -var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var8; +var_node_list = var_pexprnode1; +var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var15 = nit___nit__Parser___go_to(var_p, var14); +var10 = nit___nit__Parser___go_to(var_p, var9); } { -nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction139#action for (self: ReduceAction139, Parser) */ -void nit__parser___nit__parser__ReduceAction139___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction189#action for (self: ReduceAction189, Parser) */ +void nit__parser___nit__parser__ReduceAction189___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var9 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var10 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var11 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_ptypenode2 /* var ptypenode2: nullable Object */; -short int var12 /* : Bool */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -val* var22 /* : AAsNotNullableExternCall */; -val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var9 /* : ACallExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist11 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist10 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist9 = var3; +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var4 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist8 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var5 = 1; +} else { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var5 = 0; +} else { +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } -var_nodearraylist7 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5435); +fatal_exit(1); } -var_nodearraylist5 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype7 = type_nullable__nit__AExprs.color; +idtype8 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var6 = 1; +} else { +if(cltype7 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var6 = 0; +} else { +var6 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype7] == idtype8; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5437); +fatal_exit(1); } -var_nodearraylist4 = var8; +var9 = NEW_nit__ACallExpr(&type_nit__ACallExpr); { -var9 = nit___nit__Parser___pop(var_p); +nit__parser_prod___ACallExpr___init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ } -var_nodearraylist3 = var9; +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var10 = nit___nit__Parser___pop(var_p); +var11 = nit___nit__Parser___go_to(var_p, var10); } -var_nodearraylist2 = var10; { -var11 = nit___nit__Parser___pop(var_p); +nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_nodearraylist1 = var11; -var_ptypenode2 = var_nodearraylist1; -/* isa nullable AType */ -cltype = type_nullable__nit__AType.color; -idtype = type_nullable__nit__AType.id; -if(var_ptypenode2 == NULL) { -var12 = 1; -} else { -if(cltype >= var_ptypenode2->type->table_size) { -var12 = 0; -} else { -var12 = var_ptypenode2->type->type_table[cltype] == idtype; +RET_LABEL:; +} +/* method parser#ReduceAction191#action for (self: ReduceAction191, Parser) */ +void nit__parser___nit__parser__ReduceAction191___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: 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_pqualifiednode2 /* var pqualifiednode2: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : ASuperExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */; +long var11 /* : Int */; +long var12 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); } +var_nodearraylist3 = var; +{ +var1 = nit___nit__Parser___pop(var_p); } -if (unlikely(!var12)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5048); -show_backtrace(1); +var_nodearraylist2 = var1; +{ +var2 = nit___nit__Parser___pop(var_p); } -var_tkwasnode3 = var_nodearraylist3; -/* isa nullable TKwas */ -cltype14 = type_nullable__nit__TKwas.color; -idtype15 = type_nullable__nit__TKwas.id; -if(var_tkwasnode3 == NULL) { -var13 = 1; +var_nodearraylist1 = var2; +var_pqualifiednode2 = var_nodearraylist1; +/* isa nullable AQualified */ +cltype = type_nullable__nit__AQualified.color; +idtype = type_nullable__nit__AQualified.id; +if(var_pqualifiednode2 == NULL) { +var3 = 1; } else { -if(cltype14 >= var_tkwasnode3->type->table_size) { -var13 = 0; +if(cltype >= (((long)var_pqualifiednode2&3)?type_info[((long)var_pqualifiednode2&3)]:var_pqualifiednode2->type)->table_size) { +var3 = 0; } else { -var13 = var_tkwasnode3->type->type_table[cltype14] == idtype15; +var3 = (((long)var_pqualifiednode2&3)?type_info[((long)var_pqualifiednode2&3)]:var_pqualifiednode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var13)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5050); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5456); +fatal_exit(1); } -var_tkwnotnode4 = var_nodearraylist7; -/* isa nullable TKwnot */ -cltype17 = type_nullable__nit__TKwnot.color; -idtype18 = type_nullable__nit__TKwnot.id; -if(var_tkwnotnode4 == NULL) { -var16 = 1; +var_tkwsupernode3 = var_nodearraylist2; +/* isa nullable TKwsuper */ +cltype5 = type_nullable__nit__TKwsuper.color; +idtype6 = type_nullable__nit__TKwsuper.id; +if(var_tkwsupernode3 == NULL) { +var4 = 1; } else { -if(cltype17 >= var_tkwnotnode4->type->table_size) { -var16 = 0; +if(cltype5 >= (((long)var_tkwsupernode3&3)?type_info[((long)var_tkwsupernode3&3)]:var_tkwsupernode3->type)->table_size) { +var4 = 0; } else { -var16 = var_tkwnotnode4->type->type_table[cltype17] == idtype18; +var4 = (((long)var_tkwsupernode3&3)?type_info[((long)var_tkwsupernode3&3)]:var_tkwsupernode3->type)->type_table[cltype5] == idtype6; } } -if (unlikely(!var16)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5052); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5458); +fatal_exit(1); } -var_tkwnullablenode5 = var_nodearraylist9; -/* isa nullable TKwnullable */ -cltype20 = type_nullable__nit__TKwnullable.color; -idtype21 = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode5 == NULL) { -var19 = 1; +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype8 = type_nullable__nit__AExprs.color; +idtype9 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var7 = 1; } else { -if(cltype20 >= var_tkwnullablenode5->type->table_size) { -var19 = 0; +if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var7 = 0; } else { -var19 = var_tkwnullablenode5->type->type_table[cltype20] == idtype21; +var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var19)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5054); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5460); +fatal_exit(1); } -var22 = NEW_nit__AAsNotNullableExternCall(&type_nit__AAsNotNullableExternCall); +var10 = NEW_nit__ASuperExpr(&type_nit__ASuperExpr); { -nit__parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(var22, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5); /* Direct call parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall on */ +nit__parser_prod___ASuperExpr___init_asuperexpr(var10, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on */ } -var_pexterncallnode1 = var22; -var_node_list = var_pexterncallnode1; -var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var24 = nit___nit__Parser___go_to(var_p, var23); +var12 = nit___nit__Parser___go_to(var_p, var11); } { -nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction140#action for (self: ReduceAction140, Parser) */ -void nit__parser___nit__parser__ReduceAction140___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction192#action for (self: ReduceAction192, Parser) */ +void nit__parser___nit__parser__ReduceAction192___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var1 /* : 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_ptypenode2 /* var ptypenode2: nullable Object */; -short int var8 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tkwasnode3 /* var tkwasnode3: nullable Object */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var18 /* : AAsNotNullableExternCall */; -val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */; -long var19 /* : Int */; -long var20 /* : Int */; +val* var12 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var13 /* : Int */; +long var14 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var7; -var_ptypenode2 = var_nodearraylist1; -/* isa nullable AType */ -cltype = type_nullable__nit__AType.color; -idtype = type_nullable__nit__AType.id; -if(var_ptypenode2 == NULL) { -var8 = 1; -} else { -if(cltype >= var_ptypenode2->type->table_size) { -var8 = 0; -} else { -var8 = var_ptypenode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var8)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5078); -show_backtrace(1); -} -var_tkwasnode3 = var_nodearraylist3; -/* isa nullable TKwas */ -cltype10 = type_nullable__nit__TKwas.color; -idtype11 = type_nullable__nit__TKwas.id; -if(var_tkwasnode3 == NULL) { -var9 = 1; +var_nodearraylist1 = var4; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var5 = 1; } else { -if(cltype10 >= var_tkwasnode3->type->table_size) { -var9 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var5 = 0; } else { -var9 = var_tkwasnode3->type->type_table[cltype10] == idtype11; +var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var9)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5080); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5481); +fatal_exit(1); } -var_tkwnotnode4 = var_nodearraylist5; -/* isa nullable TKwnot */ -cltype13 = type_nullable__nit__TKwnot.color; -idtype14 = type_nullable__nit__TKwnot.id; -if(var_tkwnotnode4 == NULL) { -var12 = 1; +var_tkwinitnode3 = var_nodearraylist4; +/* isa nullable TKwinit */ +cltype7 = type_nullable__nit__TKwinit.color; +idtype8 = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var6 = 1; } else { -if(cltype13 >= var_tkwnotnode4->type->table_size) { -var12 = 0; +if(cltype7 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { +var6 = 0; } else { -var12 = var_tkwnotnode4->type->type_table[cltype13] == idtype14; +var6 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype7] == idtype8; } } -if (unlikely(!var12)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5082); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5483); +fatal_exit(1); } -var_tkwnullablenode5 = var_nodearraylist7; -/* isa nullable TKwnullable */ -cltype16 = type_nullable__nit__TKwnullable.color; -idtype17 = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode5 == NULL) { -var15 = 1; +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype10 = type_nullable__nit__AExprs.color; +idtype11 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var9 = 1; } else { -if(cltype16 >= var_tkwnullablenode5->type->table_size) { -var15 = 0; +if(cltype10 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var9 = 0; } else { -var15 = var_tkwnullablenode5->type->type_table[cltype16] == idtype17; +var9 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var15)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5084); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5485); +fatal_exit(1); } -var18 = NEW_nit__AAsNotNullableExternCall(&type_nit__AAsNotNullableExternCall); +var12 = NEW_nit__AInitExpr(&type_nit__AInitExpr); { -nit__parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(var18, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5); /* Direct call parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall on */ +nit__parser_prod___AInitExpr___init_ainitexpr(var12, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } -var_pexterncallnode1 = var18; -var_node_list = var_pexterncallnode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var12; +var_node_list = var_pexprnode1; +var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var20 = nit___nit__Parser___go_to(var_p, var19); +var14 = nit___nit__Parser___go_to(var_p, var13); } { -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction142#action for (self: ReduceAction142, Parser) */ -void nit__parser___nit__parser__ReduceAction142___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction193#action for (self: ReduceAction193, Parser) */ +void nit__parser___nit__parser__ReduceAction193___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tstringnode1 /* var tstringnode1: nullable Object */; -long var2 /* : Int */; -long var3 /* : Int */; +val* var2 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var3 /* : Bool */; +int cltype; +int idtype; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var7 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var8 /* : Int */; +long var9 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var; { var1 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var1; -var_tstringnode1 = var_nodearraylist1; -var_node_list = var_tstringnode1; -var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var2 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +{ +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var2); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ +} +var_pexprnode2 = var2; +var_tkwinitnode3 = var_nodearraylist1; +/* isa nullable TKwinit */ +cltype = type_nullable__nit__TKwinit.color; +idtype = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var3 = 1; +} else { +if(cltype >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { +var3 = 0; +} else { +var3 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5504); +fatal_exit(1); +} +var_pexprsnode4 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype5 = type_nullable__nit__AExprs.color; +idtype6 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var4 = 1; +} else { +if(cltype5 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var4 = 0; +} else { +var4 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype5] == idtype6; +} +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5506); +fatal_exit(1); +} +var7 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +{ +nit__parser_prod___AInitExpr___init_ainitexpr(var7, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +} +var_pexprnode1 = var7; +var_node_list = var_pexprnode1; +var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var3 = nit___nit__Parser___go_to(var_p, var2); +var9 = nit___nit__Parser___go_to(var_p, var8); } { -nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction143#action for (self: ReduceAction143, Parser) */ -void nit__parser___nit__parser__ReduceAction143___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction194#action for (self: ReduceAction194, Parser) */ +void nit__parser___nit__parser__ReduceAction194___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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_tkwinnode2 /* var tkwinnode2: nullable Object */; -short int var5 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_tstringnode3 /* var tstringnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AInLanguage */; -val* var_pinlanguagenode1 /* var pinlanguagenode1: nullable AInLanguage */; -long var10 /* : Int */; -long var11 /* : Int */; +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; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist3 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var_tkwinnode2 = var_nodearraylist1; -/* isa nullable TKwin */ -cltype = type_nullable__nit__TKwin.color; -idtype = type_nullable__nit__TKwin.id; -if(var_tkwinnode2 == NULL) { -var5 = 1; -} else { -if(cltype >= var_tkwinnode2->type->table_size) { -var5 = 0; -} else { -var5 = var_tkwinnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var5)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5116); -show_backtrace(1); +var_nodearraylist2 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); } -var_tstringnode3 = var_nodearraylist3; -/* isa nullable TString */ -cltype7 = type_nullable__nit__TString.color; -idtype8 = type_nullable__nit__TString.id; -if(var_tstringnode3 == NULL) { +var_nodearraylist1 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { var6 = 1; } else { -if(cltype7 >= var_tstringnode3->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var6 = 0; } else { -var6 = var_tstringnode3->type->type_table[cltype7] == idtype8; +var6 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5118); -show_backtrace(1); -} -var9 = NEW_nit__AInLanguage(&type_nit__AInLanguage); -{ -nit__parser_prod___AInLanguage___init_ainlanguage(var9, var_tkwinnode2, var_tstringnode3); /* Direct call parser_prod#AInLanguage#init_ainlanguage on */ +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5528); +fatal_exit(1); } -var_pinlanguagenode1 = var9; -var_node_list = var_pinlanguagenode1; -var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var11 = nit___nit__Parser___go_to(var_p, var10); -} -{ -nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ +var_tkwinitnode3 = var_nodearraylist5; +/* isa nullable TKwinit */ +cltype8 = type_nullable__nit__TKwinit.color; +idtype9 = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype8] == idtype9; } -RET_LABEL:; } -/* method parser#ReduceAction144#action for (self: ReduceAction144, Parser) */ -void nit__parser___nit__parser__ReduceAction144___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */; -short int var2 /* : Bool */; -int cltype; -int idtype; -val* var3 /* : AExternCodeBlock */; -val* var4 /* : null */; -val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */; -long var5 /* : Int */; -long var6 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5530); +fatal_exit(1); } -var_nodearraylist1 = var1; -var_texterncodesegmentnode3 = var_nodearraylist1; -/* isa nullable TExternCodeSegment */ -cltype = type_nullable__nit__TExternCodeSegment.color; -idtype = type_nullable__nit__TExternCodeSegment.id; -if(var_texterncodesegmentnode3 == NULL) { -var2 = 1; +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype11 = type_nullable__nit__AExprs.color; +idtype12 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var10 = 1; } else { -if(cltype >= var_texterncodesegmentnode3->type->table_size) { -var2 = 0; +if(cltype11 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var10 = 0; } else { -var2 = var_texterncodesegmentnode3->type->type_table[cltype] == idtype; +var10 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var2)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5134); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5532); +fatal_exit(1); } -var3 = NEW_nit__AExternCodeBlock(&type_nit__AExternCodeBlock); -var4 = NULL; +var13 = NEW_nit__AInitExpr(&type_nit__AInitExpr); { -nit__parser_prod___AExternCodeBlock___init_aexterncodeblock(var3, var4, var_texterncodesegmentnode3); /* Direct call parser_prod#AExternCodeBlock#init_aexterncodeblock on */ +nit__parser_prod___AInitExpr___init_ainitexpr(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } -var_pexterncodeblocknode1 = var3; -var_node_list = var_pexterncodeblocknode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var13; +var_node_list = var_pexprnode1; +var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var6 = nit___nit__Parser___go_to(var_p, var5); +var15 = nit___nit__Parser___go_to(var_p, var14); } { -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction145#action for (self: ReduceAction145, Parser) */ -void nit__parser___nit__parser__ReduceAction145___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction195#action for (self: ReduceAction195, Parser) */ +void nit__parser___nit__parser__ReduceAction195___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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_pinlanguagenode2 /* var pinlanguagenode2: nullable Object */; -short int var3 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : AExternCodeBlock */; -val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */; -long var8 /* : Int */; -long var9 /* : Int */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var2; -var_pinlanguagenode2 = var_nodearraylist1; -/* isa nullable AInLanguage */ -cltype = type_nullable__nit__AInLanguage.color; -idtype = type_nullable__nit__AInLanguage.id; -if(var_pinlanguagenode2 == NULL) { -var3 = 1; -} else { -if(cltype >= var_pinlanguagenode2->type->table_size) { -var3 = 0; -} else { -var3 = var_pinlanguagenode2->type->type_table[cltype] == idtype; +var_nodearraylist5 = var2; +{ +var3 = nit___nit__Parser___pop(var_p); } +var_nodearraylist4 = var3; +{ +var4 = nit___nit__Parser___pop(var_p); } -if (unlikely(!var3)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5151); -show_backtrace(1); +var_nodearraylist3 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); } -var_texterncodesegmentnode3 = var_nodearraylist2; -/* isa nullable TExternCodeSegment */ -cltype5 = type_nullable__nit__TExternCodeSegment.color; -idtype6 = type_nullable__nit__TExternCodeSegment.id; -if(var_texterncodesegmentnode3 == NULL) { -var4 = 1; +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var7 = 1; } else { -if(cltype5 >= var_texterncodesegmentnode3->type->table_size) { -var4 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var7 = 0; } else { -var4 = var_texterncodesegmentnode3->type->type_table[cltype5] == idtype6; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var4)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5153); -show_backtrace(1); -} -var7 = NEW_nit__AExternCodeBlock(&type_nit__AExternCodeBlock); -{ -nit__parser_prod___AExternCodeBlock___init_aexterncodeblock(var7, var_pinlanguagenode2, var_texterncodesegmentnode3); /* Direct call parser_prod#AExternCodeBlock#init_aexterncodeblock on */ -} -var_pexterncodeblocknode1 = var7; -var_node_list = var_pexterncodeblocknode1; -var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var9 = nit___nit__Parser___go_to(var_p, var8); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5555); +fatal_exit(1); } -{ -nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; +var_tkwinitnode3 = var_nodearraylist6; +/* isa nullable TKwinit */ +cltype9 = type_nullable__nit__TKwinit.color; +idtype10 = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { +var8 = 1; +} else { +if(cltype9 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { +var8 = 0; +} else { +var8 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype9] == idtype10; } -/* method parser#ReduceAction146#action for (self: ReduceAction146, Parser) */ -void nit__parser___nit__parser__ReduceAction146___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */; -long var2 /* : Int */; -long var3 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var_pexterncodeblocknode1 = var_nodearraylist1; -var_node_list = var_pexterncodeblocknode1; -var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var3 = nit___nit__Parser___go_to(var_p, var2); +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5557); +fatal_exit(1); } -{ -nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype12 = type_nullable__nit__AExprs.color; +idtype13 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype12] == idtype13; } -RET_LABEL:; } -/* method parser#ReduceAction148#action for (self: ReduceAction148, Parser) */ -void nit__parser___nit__parser__ReduceAction148___nit__parser_work__ReduceAction__action(val* self, val* p0) { -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_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */; -long var3 /* : Int */; -long var4 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5559); +fatal_exit(1); } -var_nodearraylist2 = var1; +var14 = NEW_nit__AInitExpr(&type_nit__AInitExpr); { -var2 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AInitExpr___init_ainitexpr(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } -var_nodearraylist1 = var2; -var_pexterncodeblocknode1 = var_nodearraylist2; -var_node_list = var_pexterncodeblocknode1; -var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var4 = nit___nit__Parser___go_to(var_p, var3); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction149#action for (self: ReduceAction149, Parser) */ -void nit__parser___nit__parser__ReduceAction149___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction197#action for (self: ReduceAction197, Parser) */ +void nit__parser___nit__parser__ReduceAction197___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_tclassidnode3 /* var tclassidnode3: 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_pannotationsnode5 /* var pannotationsnode5: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var5 /* : Bool */; int cltype6; int idtype7; -val* var8 /* : AType */; -val* var9 /* : null */; -val* var_ptypenode1 /* var ptypenode1: nullable AType */; +val* var8 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var9 /* : Int */; long var10 /* : Int */; -long var11 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -1112,95 +1030,94 @@ var_nodearraylist2 = var1; var2 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var2; -var3 = NEW_standard__Array(&type_standard__Array__standard__Object); +var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on */ +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_listnode4 = var3; -var_tclassidnode3 = var_nodearraylist1; -/* isa nullable TClassid */ -cltype = type_nullable__nit__TClassid.color; -idtype = type_nullable__nit__TClassid.id; -if(var_tclassidnode3 == NULL) { +var_pexprnode2 = var3; +var_tkwinitnode3 = var_nodearraylist2; +/* isa nullable TKwinit */ +cltype = type_nullable__nit__TKwinit.color; +idtype = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { var4 = 1; } else { -if(cltype >= var_tclassidnode3->type->table_size) { +if(cltype >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { var4 = 0; } else { -var4 = var_tclassidnode3->type->type_table[cltype] == idtype; +var4 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5194); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5579); +fatal_exit(1); } -var_pannotationsnode5 = var_nodearraylist2; -/* isa nullable AAnnotations */ -cltype6 = type_nullable__nit__AAnnotations.color; -idtype7 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode5 == NULL) { +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype6 = type_nullable__nit__AExprs.color; +idtype7 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { var5 = 1; } else { -if(cltype6 >= var_pannotationsnode5->type->table_size) { +if(cltype6 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { var5 = 0; } else { -var5 = var_pannotationsnode5->type->type_table[cltype6] == idtype7; +var5 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype6] == idtype7; } } if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5196); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5581); +fatal_exit(1); } -var8 = NEW_nit__AType(&type_nit__AType); -var9 = NULL; +var8 = NEW_nit__AInitExpr(&type_nit__AInitExpr); { -nit__parser_prod___AType___init_atype(var8, var9, var_tclassidnode3, var_listnode4, var_pannotationsnode5); /* Direct call parser_prod#AType#init_atype on */ +nit__parser_prod___AInitExpr___init_ainitexpr(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } -var_ptypenode1 = var8; -var_node_list = var_ptypenode1; -var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var8; +var_node_list = var_pexprnode1; +var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var11 = nit___nit__Parser___go_to(var_p, var10); +var10 = nit___nit__Parser___go_to(var_p, var9); } { -nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction150#action for (self: ReduceAction150, Parser) */ -void nit__parser___nit__parser__ReduceAction150___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction198#action for (self: ReduceAction198, Parser) */ +void nit__parser___nit__parser__ReduceAction198___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */; +val* var4 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var6 /* : Bool */; int cltype7; int idtype8; -val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : AType */; -val* var_ptypenode1 /* var ptypenode1: nullable AType */; -long var13 /* : Int */; -long var14 /* : Int */; +val* var9 /* : AInitExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +long var10 /* : Int */; +long var11 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -1213,483 +1130,371 @@ var_nodearraylist2 = var2; var3 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var3; -var4 = NEW_standard__Array(&type_standard__Array__standard__Object); +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_listnode4 = var4; -var_tkwnullablenode2 = var_nodearraylist1; -/* isa nullable TKwnullable */ -cltype = type_nullable__nit__TKwnullable.color; -idtype = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode2 == NULL) { +var_pexprnode2 = var4; +var_tkwinitnode3 = var_nodearraylist3; +/* isa nullable TKwinit */ +cltype = type_nullable__nit__TKwinit.color; +idtype = type_nullable__nit__TKwinit.id; +if(var_tkwinitnode3 == NULL) { var5 = 1; } else { -if(cltype >= var_tkwnullablenode2->type->table_size) { +if(cltype >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) { var5 = 0; } else { -var5 = var_tkwnullablenode2->type->type_table[cltype] == idtype; +var5 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5217); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5602); +fatal_exit(1); } -var_tclassidnode3 = var_nodearraylist2; -/* isa nullable TClassid */ -cltype7 = type_nullable__nit__TClassid.color; -idtype8 = type_nullable__nit__TClassid.id; -if(var_tclassidnode3 == NULL) { +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype7 = type_nullable__nit__AExprs.color; +idtype8 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { var6 = 1; } else { -if(cltype7 >= var_tclassidnode3->type->table_size) { +if(cltype7 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { var6 = 0; } else { -var6 = var_tclassidnode3->type->type_table[cltype7] == idtype8; +var6 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype7] == idtype8; } } if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5219); -show_backtrace(1); -} -var_pannotationsnode5 = var_nodearraylist3; -/* isa nullable AAnnotations */ -cltype10 = type_nullable__nit__AAnnotations.color; -idtype11 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode5 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_pannotationsnode5->type->table_size) { -var9 = 0; -} else { -var9 = var_pannotationsnode5->type->type_table[cltype10] == idtype11; -} -} -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5221); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5604); +fatal_exit(1); } -var12 = NEW_nit__AType(&type_nit__AType); +var9 = NEW_nit__AInitExpr(&type_nit__AInitExpr); { -nit__parser_prod___AType___init_atype(var12, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var_pannotationsnode5); /* Direct call parser_prod#AType#init_atype on */ +nit__parser_prod___AInitExpr___init_ainitexpr(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ } -var_ptypenode1 = var12; -var_node_list = var_ptypenode1; -var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var9; +var_node_list = var_pexprnode1; +var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var14 = nit___nit__Parser___go_to(var_p, var13); +var11 = nit___nit__Parser___go_to(var_p, var10); } { -nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction151#action for (self: ReduceAction151, Parser) */ -void nit__parser___nit__parser__ReduceAction151___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction200#action for (self: ReduceAction200, Parser) */ +void nit__parser___nit__parser__ReduceAction200___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var1 /* : 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* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; -short int var9 /* : Bool */; +val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : AType */; -val* var18 /* : null */; -val* var_ptypenode1 /* var ptypenode1: nullable AType */; -long var19 /* : Int */; -long var20 /* : Int */; +val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_pexprnode4 /* var pexprnode4: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_ptypenode5 /* var ptypenode5: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ADebugTypeExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */; +long var16 /* : Int */; +long var17 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var4; +var_tkwdebugnode2 = var_nodearraylist1; +/* isa nullable TKwdebug */ +cltype = type_nullable__nit__TKwdebug.color; +idtype = type_nullable__nit__TKwdebug.id; +if(var_tkwdebugnode2 == NULL) { +var5 = 1; +} else { +if(cltype >= (((long)var_tkwdebugnode2&3)?type_info[((long)var_tkwdebugnode2&3)]:var_tkwdebugnode2->type)->table_size) { +var5 = 0; +} else { +var5 = (((long)var_tkwdebugnode2&3)?type_info[((long)var_tkwdebugnode2&3)]:var_tkwdebugnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5625); +fatal_exit(1); } -var_nodearraylist1 = var7; -var8 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on */ +var_tkwtypenode3 = var_nodearraylist2; +/* isa nullable TKwtype */ +cltype7 = type_nullable__nit__TKwtype.color; +idtype8 = type_nullable__nit__TKwtype.id; +if(var_tkwtypenode3 == NULL) { +var6 = 1; +} else { +if(cltype7 >= (((long)var_tkwtypenode3&3)?type_info[((long)var_tkwtypenode3&3)]:var_tkwtypenode3->type)->table_size) { +var6 = 0; +} else { +var6 = (((long)var_tkwtypenode3&3)?type_info[((long)var_tkwtypenode3&3)]:var_tkwtypenode3->type)->type_table[cltype7] == idtype8; +} +} +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5627); +fatal_exit(1); } -var_listnode5 = var8; -var_tclassidnode3 = var_nodearraylist1; -/* isa nullable TClassid */ -cltype = type_nullable__nit__TClassid.color; -idtype = type_nullable__nit__TClassid.id; -if(var_tclassidnode3 == NULL) { +var_pexprnode4 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode4 == NULL) { var9 = 1; } else { -if(cltype >= var_tclassidnode3->type->table_size) { +if(cltype10 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) { var9 = 0; } else { -var9 = var_tclassidnode3->type->type_table[cltype] == idtype; +var9 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype10] == idtype11; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5246); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5629); +fatal_exit(1); } -var_listnode4 = var_nodearraylist4; -/* isa Array[Object] */ -cltype11 = type_standard__Array__standard__Object.color; -idtype12 = type_standard__Array__standard__Object.id; -if(var_listnode4 == NULL) { -var10 = 0; +var_ptypenode5 = var_nodearraylist3; +/* isa nullable AType */ +cltype13 = type_nullable__nit__AType.color; +idtype14 = type_nullable__nit__AType.id; +if(var_ptypenode5 == NULL) { +var12 = 1; } else { -if(cltype11 >= var_listnode4->type->table_size) { -var10 = 0; +if(cltype13 >= (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->table_size) { +var12 = 0; } else { -var10 = var_listnode4->type->type_table[cltype11] == idtype12; +var12 = (((long)var_ptypenode5&3)?type_info[((long)var_ptypenode5&3)]:var_ptypenode5->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var10)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5248); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5631); +fatal_exit(1); } +var15 = NEW_nit__ADebugTypeExpr(&type_nit__ADebugTypeExpr); { -var13 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode5, var_listnode4); +nit__parser_prod___ADebugTypeExpr___init_adebugtypeexpr(var15, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5); /* Direct call parser_prod#ADebugTypeExpr#init_adebugtypeexpr on */ } -var_listnode5 = var13; -var_pannotationsnode6 = var_nodearraylist7; -/* isa nullable AAnnotations */ -cltype15 = type_nullable__nit__AAnnotations.color; -idtype16 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode6 == NULL) { -var14 = 1; -} else { -if(cltype15 >= var_pannotationsnode6->type->table_size) { -var14 = 0; -} else { -var14 = var_pannotationsnode6->type->type_table[cltype15] == idtype16; -} -} -if (unlikely(!var14)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5251); -show_backtrace(1); -} -var17 = NEW_nit__AType(&type_nit__AType); -var18 = NULL; -{ -nit__parser_prod___AType___init_atype(var17, var18, var_tclassidnode3, var_listnode5, var_pannotationsnode6); /* Direct call parser_prod#AType#init_atype on */ -} -var_ptypenode1 = var17; -var_node_list = var_ptypenode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var15; +var_node_list = var_pexprnode1; +var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var20 = nit___nit__Parser___go_to(var_p, var19); +var17 = nit___nit__Parser___go_to(var_p, var16); } { -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction152#action for (self: ReduceAction152, Parser) */ -void nit__parser___nit__parser__ReduceAction152___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction201#action for (self: ReduceAction201, Parser) */ +void nit__parser___nit__parser__ReduceAction201___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var9 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */; -short int var10 /* : Bool */; +val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; +short int var1 /* : Bool */; int cltype; int idtype; -val* var_tclassidnode3 /* var tclassidnode3: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_listnode4 /* var listnode4: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : Array[Object] */; -val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -val* var21 /* : AType */; -val* var_ptypenode1 /* var ptypenode1: nullable AType */; -long var22 /* : Int */; -long var23 /* : Int */; +val* var2 /* : ALabel */; +val* var_plabelnode1 /* var plabelnode1: nullable ALabel */; +long var3 /* : Int */; +long var4 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist8 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist7 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist6 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist5 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var8; -var9 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var9); /* Direct call array#Array#init on */ -} -var_listnode5 = var9; -var_tkwnullablenode2 = var_nodearraylist1; -/* isa nullable TKwnullable */ -cltype = type_nullable__nit__TKwnullable.color; -idtype = type_nullable__nit__TKwnullable.id; -if(var_tkwnullablenode2 == NULL) { -var10 = 1; -} else { -if(cltype >= var_tkwnullablenode2->type->table_size) { -var10 = 0; -} else { -var10 = var_tkwnullablenode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var10)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5277); -show_backtrace(1); -} -var_tclassidnode3 = var_nodearraylist2; -/* isa nullable TClassid */ -cltype12 = type_nullable__nit__TClassid.color; -idtype13 = type_nullable__nit__TClassid.id; -if(var_tclassidnode3 == NULL) { -var11 = 1; -} else { -if(cltype12 >= var_tclassidnode3->type->table_size) { -var11 = 0; -} else { -var11 = var_tclassidnode3->type->type_table[cltype12] == idtype13; -} -} -if (unlikely(!var11)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5279); -show_backtrace(1); -} -var_listnode4 = var_nodearraylist5; -/* isa Array[Object] */ -cltype15 = type_standard__Array__standard__Object.color; -idtype16 = type_standard__Array__standard__Object.id; -if(var_listnode4 == NULL) { -var14 = 0; -} else { -if(cltype15 >= var_listnode4->type->table_size) { -var14 = 0; -} else { -var14 = var_listnode4->type->type_table[cltype15] == idtype16; -} -} -if (unlikely(!var14)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5281); -show_backtrace(1); -} +var_node_list = ((val*)NULL); { -var17 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode5, var_listnode4); +var = nit___nit__Parser___pop(var_p); } -var_listnode5 = var17; -var_pannotationsnode6 = var_nodearraylist8; -/* isa nullable AAnnotations */ -cltype19 = type_nullable__nit__AAnnotations.color; -idtype20 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode6 == NULL) { -var18 = 1; +var_nodearraylist1 = var; +var_tkwlabelnode2 = var_nodearraylist1; +/* isa nullable TKwlabel */ +cltype = type_nullable__nit__TKwlabel.color; +idtype = type_nullable__nit__TKwlabel.id; +if(var_tkwlabelnode2 == NULL) { +var1 = 1; } else { -if(cltype19 >= var_pannotationsnode6->type->table_size) { -var18 = 0; +if(cltype >= (((long)var_tkwlabelnode2&3)?type_info[((long)var_tkwlabelnode2&3)]:var_tkwlabelnode2->type)->table_size) { +var1 = 0; } else { -var18 = var_pannotationsnode6->type->type_table[cltype19] == idtype20; +var1 = (((long)var_tkwlabelnode2&3)?type_info[((long)var_tkwlabelnode2&3)]:var_tkwlabelnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var18)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5284); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5649); +fatal_exit(1); } -var21 = NEW_nit__AType(&type_nit__AType); +var2 = NEW_nit__ALabel(&type_nit__ALabel); { -nit__parser_prod___AType___init_atype(var21, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var_pannotationsnode6); /* Direct call parser_prod#AType#init_atype on */ +nit__parser_prod___ALabel___init_alabel(var2, var_tkwlabelnode2, ((val*)NULL)); /* Direct call parser_prod#ALabel#init_alabel on */ } -var_ptypenode1 = var21; -var_node_list = var_ptypenode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_plabelnode1 = var2; +var_node_list = var_plabelnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var23 = nit___nit__Parser___go_to(var_p, var22); +var4 = nit___nit__Parser___go_to(var_p, var3); } { -nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction153#action for (self: ReduceAction153, Parser) */ -void nit__parser___nit__parser__ReduceAction153___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction202#action for (self: ReduceAction202, Parser) */ +void nit__parser___nit__parser__ReduceAction202___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode2 /* var listnode2: Array[Object] */; -val* var_ptypenode1 /* var ptypenode1: nullable Object */; -val* var3 /* : null */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -long var6 /* : Int */; +val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +val* var6 /* : ALabel */; +val* var_plabelnode1 /* var plabelnode1: nullable ALabel */; long var7 /* : Int */; +long var8 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var2 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_nodearraylist2 = var; { -standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on */ +var1 = nit___nit__Parser___pop(var_p); } -var_listnode2 = var2; -var_ptypenode1 = var_nodearraylist1; -var3 = NULL; -if (var_ptypenode1 == NULL) { -var4 = 0; /* is null */ +var_nodearraylist1 = var1; +var_tkwlabelnode2 = var_nodearraylist1; +/* isa nullable TKwlabel */ +cltype = type_nullable__nit__TKwlabel.color; +idtype = type_nullable__nit__TKwlabel.id; +if(var_tkwlabelnode2 == NULL) { +var2 = 1; +} else { +if(cltype >= (((long)var_tkwlabelnode2&3)?type_info[((long)var_tkwlabelnode2&3)]:var_tkwlabelnode2->type)->table_size) { +var2 = 0; } else { -var4 = 1; /* arg is null and recv is not */ +var2 = (((long)var_tkwlabelnode2&3)?type_info[((long)var_tkwlabelnode2&3)]:var_tkwlabelnode2->type)->type_table[cltype] == idtype; } -if (0) { -var5 = ((short int (*)(val* self, val* p0))(var_ptypenode1->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var_ptypenode1, var3) /* != on */; -var4 = var5; } -if (var4){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_ptypenode1); /* Direct call array#Array#add on */ +if (unlikely(!var2)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5666); +fatal_exit(1); } +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype4 = type_nullable__nit__TId.color; +idtype5 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var3 = 1; +} else { +if(cltype4 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var3 = 0; } else { +var3 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype4] == idtype5; +} +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5668); +fatal_exit(1); +} +var6 = NEW_nit__ALabel(&type_nit__ALabel); +{ +nit__parser_prod___ALabel___init_alabel(var6, var_tkwlabelnode2, var_tidnode3); /* Direct call parser_prod#ALabel#init_alabel on */ } -var_node_list = var_listnode2; -var6 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_plabelnode1 = var6; +var_node_list = var_plabelnode1; +var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var7 = nit___nit__Parser___go_to(var_p, var6); +var8 = nit___nit__Parser___go_to(var_p, var7); } { -nit___nit__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction154#action for (self: ReduceAction154, Parser) */ -void nit__parser___nit__parser__ReduceAction154___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction203#action for (self: ReduceAction203, Parser) */ +void nit__parser___nit__parser__ReduceAction203___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var_ptypenode1 /* var ptypenode1: nullable Object */; -val* var_listnode2 /* var listnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var5 /* : null */; -short int var6 /* : Bool */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; short int var7 /* : Bool */; -val* var8 /* : Array[Object] */; -long var9 /* : Int */; -long var10 /* : Int */; +int cltype8; +int idtype9; +val* var10 /* : AVardeclExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var11 /* : Int */; +long var12 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -1698,77 +1503,113 @@ var_nodearraylist2 = var1; var2 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var2; -var3 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on */ +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable__nit__TKwvar.color; +idtype = type_nullable__nit__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->table_size) { +var3 = 0; +} else { +var3 = (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->type_table[cltype] == idtype; } -var_listnode3 = var3; -var_ptypenode1 = var_nodearraylist1; -var_listnode2 = var_nodearraylist2; -/* isa Array[Object] */ -cltype = type_standard__Array__standard__Object.color; -idtype = type_standard__Array__standard__Object.id; -if(var_listnode2 == NULL) { -var4 = 0; +} +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5686); +fatal_exit(1); +} +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype5 = type_nullable__nit__TId.color; +idtype6 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var4 = 1; } else { -if(cltype >= var_listnode2->type->table_size) { +if(cltype5 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var4 = 0; } else { -var4 = var_listnode2->type->type_table[cltype] == idtype; +var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype5] == idtype6; } } if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5320); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5688); +fatal_exit(1); } -var5 = NULL; -if (var_ptypenode1 == NULL) { -var6 = 0; /* is null */ +var_ptypenode4 = var_nodearraylist3; +/* isa nullable AType */ +cltype8 = type_nullable__nit__AType.color; +idtype9 = type_nullable__nit__AType.id; +if(var_ptypenode4 == NULL) { +var7 = 1; } else { -var6 = 1; /* arg is null and recv is not */ -} -if (0) { -var7 = ((short int (*)(val* self, val* p0))(var_ptypenode1->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var_ptypenode1, var5) /* != on */; -var6 = var7; +if(cltype8 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype8] == idtype9; } -if (var6){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_ptypenode1); /* Direct call array#Array#add on */ } -} else { +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5690); +fatal_exit(1); } +var10 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); { -var8 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2); +nit__parser_prod___AVardeclExpr___init_avardeclexpr(var10, var_tkwvarnode2, var_tidnode3, var_ptypenode4, ((val*)NULL), ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } -var_listnode3 = var8; -var_node_list = var_listnode3; -var9 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var10 = nit___nit__Parser___go_to(var_p, var9); +var12 = nit___nit__Parser___go_to(var_p, var11); } { -nit___nit__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction155#action for (self: ReduceAction155, Parser) */ -void nit__parser___nit__parser__ReduceAction155___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction204#action for (self: ReduceAction204, Parser) */ +void nit__parser___nit__parser__ReduceAction204___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_ptypenode1 /* var ptypenode1: nullable Object */; -long var4 /* : Int */; -long var5 /* : Int */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var4 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : AVardeclExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -1781,659 +1622,610 @@ var_nodearraylist2 = var2; var3 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var3; -var_ptypenode1 = var_nodearraylist3; -var_node_list = var_ptypenode1; -var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var5 = nit___nit__Parser___go_to(var_p, var4); -} -{ -nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction159#action for (self: ReduceAction159, Parser) */ -void nit__parser___nit__parser__ReduceAction159___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode1 /* var pexprnode1: nullable Object */; -long var3 /* : Int */; -long var4 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var2; -var_pexprnode1 = var_nodearraylist2; -var_node_list = var_pexprnode1; -var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var4 = nit___nit__Parser___go_to(var_p, var3); -} -{ -nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction160#action for (self: ReduceAction160, Parser) */ -void nit__parser___nit__parser__ReduceAction160___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode2 /* var listnode2: Array[Object] */; -val* var_tkwendnode3 /* var tkwendnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype; -int idtype; -val* var5 /* : ABlockExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var6 /* : Int */; -long var7 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var2; -var3 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on */ -} -var_listnode2 = var3; -var_tkwendnode3 = var_nodearraylist2; -/* isa nullable TKwend */ -cltype = type_nullable__nit__TKwend.color; -idtype = type_nullable__nit__TKwend.id; -if(var_tkwendnode3 == NULL) { +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable__nit__TKwvar.color; +idtype = type_nullable__nit__TKwvar.id; +if(var_tkwvarnode2 == NULL) { var4 = 1; } else { -if(cltype >= var_tkwendnode3->type->table_size) { +if(cltype >= (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->table_size) { var4 = 0; } else { -var4 = var_tkwendnode3->type->type_table[cltype] == idtype; +var4 = (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5363); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5713); +fatal_exit(1); } -var5 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); -{ -nit__parser_prod___ABlockExpr___init_ablockexpr(var5, var_listnode2, var_tkwendnode3); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype6 = type_nullable__nit__TId.color; +idtype7 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var5 = 1; +} else { +if(cltype6 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var5 = 0; +} else { +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype6] == idtype7; } -var_pexprnode1 = var5; -var_node_list = var_pexprnode1; -var6 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var7 = nit___nit__Parser___go_to(var_p, var6); } -{ -nit___nit__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on */ +if (unlikely(!var5)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5715); +fatal_exit(1); } -RET_LABEL:; +var_ptypenode4 = var_nodearraylist4; +/* isa nullable AType */ +cltype9 = type_nullable__nit__AType.color; +idtype10 = type_nullable__nit__AType.id; +if(var_ptypenode4 == NULL) { +var8 = 1; +} else { +if(cltype9 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) { +var8 = 0; +} else { +var8 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype9] == idtype10; } -/* method parser#ReduceAction161#action for (self: ReduceAction161, Parser) */ -void nit__parser___nit__parser__ReduceAction161___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode2 /* var listnode2: Array[Object] */; -val* var_tkwendnode3 /* var tkwendnode3: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var4 /* : ABlockExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var5 /* : Int */; -long var6 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var2 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on */ +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5717); +fatal_exit(1); } -var_listnode2 = var2; -var_tkwendnode3 = var_nodearraylist1; -/* isa nullable TKwend */ -cltype = type_nullable__nit__TKwend.color; -idtype = type_nullable__nit__TKwend.id; -if(var_tkwendnode3 == NULL) { -var3 = 1; +var_pannotationsnode7 = var_nodearraylist3; +/* isa nullable AAnnotations */ +cltype12 = type_nullable__nit__AAnnotations.color; +idtype13 = type_nullable__nit__AAnnotations.id; +if(var_pannotationsnode7 == NULL) { +var11 = 1; } else { -if(cltype >= var_tkwendnode3->type->table_size) { -var3 = 0; +if(cltype12 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) { +var11 = 0; } else { -var3 = var_tkwendnode3->type->type_table[cltype] == idtype; +var11 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype12] == idtype13; } } -if (unlikely(!var3)) { +if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5380); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5719); +fatal_exit(1); } -var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); +var14 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var4, var_listnode2, var_tkwendnode3); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___AVardeclExpr___init_avardeclexpr(var14, var_tkwvarnode2, var_tidnode3, var_ptypenode4, ((val*)NULL), ((val*)NULL), var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } -var_pexprnode1 = var4; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var6 = nit___nit__Parser___go_to(var_p, var5); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction162#action for (self: ReduceAction162, Parser) */ -void nit__parser___nit__parser__ReduceAction162___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction205#action for (self: ReduceAction205, Parser) */ +void nit__parser___nit__parser__ReduceAction205___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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_pexprnode1 /* var pexprnode1: nullable Object */; -long var2 /* : Int */; -long var3 /* : Int */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : AVardeclExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var20 /* : Int */; +long var21 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var_pexprnode1 = var_nodearraylist1; -var_node_list = var_pexprnode1; -var2 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_nodearraylist6 = var; { -var3 = nit___nit__Parser___go_to(var_p, var2); +var1 = nit___nit__Parser___pop(var_p); } +var_nodearraylist5 = var1; { -nit___nit__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on */ +var2 = nit___nit__Parser___pop(var_p); } -RET_LABEL:; +var_nodearraylist4 = var2; +{ +var3 = nit___nit__Parser___pop(var_p); } -/* method parser#ReduceAction163#action for (self: ReduceAction163, Parser) */ -void nit__parser___nit__parser__ReduceAction163___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var2 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : ABlockExpr */; -val* var11 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var12 /* : Int */; -long var13 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var_nodearraylist3 = var3; { -var1 = nit___nit__Parser___pop(var_p); +var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var2 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_nodearraylist2 = var4; { -standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on */ +var5 = nit___nit__Parser___pop(var_p); } -var_listnode3 = var2; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var3 = 1; +var_nodearraylist1 = var5; +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable__nit__TKwvar.color; +idtype = type_nullable__nit__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var3 = 0; +if(cltype >= (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->table_size) { +var6 = 0; } else { -var3 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var3)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5408); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5744); +fatal_exit(1); } -var4 = NULL; -if (var_pexprnode2 == NULL) { -var5 = 0; /* is null */ +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype8 = type_nullable__nit__TId.color; +idtype9 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var7 = 0; } else { -var5 = 1; /* arg is null and recv is not */ +var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype8] == idtype9; } -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var4) on */ -var_other = var4; -{ -var8 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5746); +fatal_exit(1); +} +var_ptypenode4 = var_nodearraylist3; +/* isa nullable AType */ +cltype11 = type_nullable__nit__AType.color; +idtype12 = type_nullable__nit__AType.id; +if(var_ptypenode4 == NULL) { +var10 = 1; +} else { +if(cltype11 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) { +var10 = 0; +} else { +var10 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype11] == idtype12; +} } -var5 = var6; +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5748); +fatal_exit(1); } -if (var5){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ +var_tassignnode5 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype14 = type_nullable__nit__TAssign.color; +idtype15 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var13 = 1; +} else { +if(cltype14 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var13 = 0; +} else { +var13 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype14] == idtype15; } +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5750); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype17 = type_nullable__nit__AExpr.color; +idtype18 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var16 = 1; } else { +if(cltype17 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var16 = 0; +} else { +var16 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5752); +fatal_exit(1); } -var10 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); -var11 = NULL; +var19 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var10, var_listnode3, var11); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___AVardeclExpr___init_avardeclexpr(var19, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, ((val*)NULL)); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } -var_pexprnode1 = var10; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var13 = nit___nit__Parser___go_to(var_p, var12); +var21 = nit___nit__Parser___go_to(var_p, var20); } { -nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction164#action for (self: ReduceAction164, Parser) */ -void nit__parser___nit__parser__ReduceAction164___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction206#action for (self: ReduceAction206, Parser) */ +void nit__parser___nit__parser__ReduceAction206___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var3 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -val* var8 /* : null */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -val* var14 /* : Array[Object] */; -val* var15 /* : ABlockExpr */; -val* var16 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_ptypenode4 /* var ptypenode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +val* var23 /* : AVardeclExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; +long var24 /* : Int */; +long var25 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; +var_nodearraylist7 = var; { -var2 = nit___nit__Parser___pop(var_p); +var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var2; -var3 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_nodearraylist6 = var1; { -standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on */ -} -var_listnode4 = var3; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var4 = 1; -} else { -if(cltype >= var_pexprnode2->type->table_size) { -var4 = 0; -} else { -var4 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var4)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5429); -show_backtrace(1); -} -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype6 = type_standard__Array__standard__Object.color; -idtype7 = type_standard__Array__standard__Object.id; -if(var_listnode3 == NULL) { -var5 = 0; -} else { -if(cltype6 >= var_listnode3->type->table_size) { -var5 = 0; -} else { -var5 = var_listnode3->type->type_table[cltype6] == idtype7; -} -} -if (unlikely(!var5)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5431); -show_backtrace(1); -} -var8 = NULL; -if (var_pexprnode2 == NULL) { -var9 = 0; /* is null */ -} else { -var9 = 1; /* arg is null and recv is not */ +var2 = nit___nit__Parser___pop(var_p); } -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var8) on */ -var_other = var8; +var_nodearraylist5 = var2; { -var12 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; +var3 = nit___nit__Parser___pop(var_p); } -var13 = !var12; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var_nodearraylist4 = var3; +{ +var4 = nit___nit__Parser___pop(var_p); } -var9 = var10; +var_nodearraylist3 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); } -if (var9){ +var_nodearraylist2 = var5; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +var6 = nit___nit__Parser___pop(var_p); } +var_nodearraylist1 = var6; +var_tkwvarnode2 = var_nodearraylist1; +/* isa nullable TKwvar */ +cltype = type_nullable__nit__TKwvar.color; +idtype = type_nullable__nit__TKwvar.id; +if(var_tkwvarnode2 == NULL) { +var7 = 1; +} else { +if(cltype >= (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->table_size) { +var7 = 0; } else { +var7 = (((long)var_tkwvarnode2&3)?type_info[((long)var_tkwvarnode2&3)]:var_tkwvarnode2->type)->type_table[cltype] == idtype; } -{ -var14 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3); } -var_listnode4 = var14; -var15 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); -var16 = NULL; -{ -nit__parser_prod___ABlockExpr___init_ablockexpr(var15, var_listnode4, var16); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5778); +fatal_exit(1); } -var_pexprnode1 = var15; -var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var18 = nit___nit__Parser___go_to(var_p, var17); +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype9 = type_nullable__nit__TId.color; +idtype10 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; +} else { +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var8 = 0; +} else { +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; } -{ -nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } -RET_LABEL:; +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5780); +fatal_exit(1); } -/* method parser#ReduceAction165#action for (self: ReduceAction165, Parser) */ -void nit__parser___nit__parser__ReduceAction165___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var4 /* : Bool */; -int cltype; -int idtype; -val* var5 /* : null */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : ABlockExpr */; -val* var12 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var13 /* : Int */; -long var14 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); +var_ptypenode4 = var_nodearraylist4; +/* isa nullable AType */ +cltype12 = type_nullable__nit__AType.color; +idtype13 = type_nullable__nit__AType.id; +if(var_ptypenode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype12] == idtype13; } -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var2; -var3 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var3); /* Direct call array#Array#init on */ +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5782); +fatal_exit(1); } -var_listnode3 = var3; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var4 = 1; +var_tassignnode5 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype15 = type_nullable__nit__TAssign.color; +idtype16 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var14 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var4 = 0; +if(cltype15 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var14 = 0; } else { -var4 = var_pexprnode2->type->type_table[cltype] == idtype; +var14 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var4)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5453); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5784); +fatal_exit(1); } -var5 = NULL; -if (var_pexprnode2 == NULL) { -var6 = 0; /* is null */ +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var17 = 1; +} else { +if(cltype18 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var17 = 0; } else { -var6 = 1; /* arg is null and recv is not */ +var17 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype18] == idtype19; } -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var5) on */ -var_other = var5; -{ -var9 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; } -var10 = !var9; -var7 = var10; -goto RET_LABEL8; -RET_LABEL8:(void)0; +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5786); +fatal_exit(1); } -var6 = var7; +var_pannotationsnode7 = var_nodearraylist3; +/* isa nullable AAnnotations */ +cltype21 = type_nullable__nit__AAnnotations.color; +idtype22 = type_nullable__nit__AAnnotations.id; +if(var_pannotationsnode7 == NULL) { +var20 = 1; +} else { +if(cltype21 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) { +var20 = 0; +} else { +var20 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype21] == idtype22; } -if (var6){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ } -} else { +if (unlikely(!var20)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5788); +fatal_exit(1); } -var11 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); -var12 = NULL; +var23 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var11, var_listnode3, var12); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___AVardeclExpr___init_avardeclexpr(var23, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ } -var_pexprnode1 = var11; +var_pexprnode1 = var23; var_node_list = var_pexprnode1; -var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var24 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var14 = nit___nit__Parser___go_to(var_p, var13); +var25 = nit___nit__Parser___go_to(var_p, var24); } { -nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction166#action for (self: ReduceAction166, Parser) */ -void nit__parser___nit__parser__ReduceAction166___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction207#action for (self: ReduceAction207, Parser) */ +void nit__parser___nit__parser__ReduceAction207___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var4 /* : Array[Object] */; -val* var_listnode4 /* var listnode4: Array[Object] */; val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : null */; -short int var10 /* : Bool */; +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 */; -val* var_other /* var other: nullable Object */; -short int var13 /* : Bool */; +int cltype12; +int idtype13; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; short int var14 /* : Bool */; -val* var15 /* : Array[Object] */; -val* var16 /* : ABlockExpr */; -val* var17 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +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; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var3; -var4 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_nodearraylist4 = var3; +{ +var4 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var5; { -standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ +var6 = nit___nit__Parser___pop(var_p); } -var_listnode4 = var4; +var_nodearraylist1 = var6; var_pexprnode2 = var_nodearraylist1; /* isa nullable AExpr */ cltype = type_nullable__nit__AExpr.color; idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { -var5 = 1; +var7 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var7 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var5)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5475); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5814); +fatal_exit(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype7 = type_standard__Array__standard__Object.color; -idtype8 = type_standard__Array__standard__Object.id; -if(var_listnode3 == NULL) { -var6 = 0; +var_tattridnode3 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype9 = type_nullable__nit__TAttrid.color; +idtype10 = type_nullable__nit__TAttrid.id; +if(var_tattridnode3 == NULL) { +var8 = 1; } else { -if(cltype7 >= var_listnode3->type->table_size) { -var6 = 0; +if(cltype9 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) { +var8 = 0; } else { -var6 = var_listnode3->type->type_table[cltype7] == idtype8; +var8 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var6)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5477); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5816); +fatal_exit(1); } -var9 = NULL; -if (var_pexprnode2 == NULL) { -var10 = 0; /* is null */ +var_tassignnode4 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype12 = type_nullable__nit__TAssign.color; +idtype13 = type_nullable__nit__TAssign.id; +if(var_tassignnode4 == NULL) { +var11 = 1; } else { -var10 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var9) on */ -var_other = var9; -{ -var13 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; -} -var14 = !var13; -var11 = var14; -goto RET_LABEL12; -RET_LABEL12:(void)0; +if(cltype12 >= (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->type_table[cltype12] == idtype13; } -var10 = var11; } -if (var10){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5818); +fatal_exit(1); } +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype15 = type_nullable__nit__AExpr.color; +idtype16 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var14 = 1; } else { +if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var14 = 0; +} else { +var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16; } -{ -var15 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3); } -var_listnode4 = var15; -var16 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); -var17 = NULL; +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5820); +fatal_exit(1); +} +var17 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var16, var_listnode4, var17); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___AAttrAssignExpr___init_aattrassignexpr(var17, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ } -var_pexprnode1 = var16; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { var19 = nit___nit__Parser___go_to(var_p, var18); } @@ -2442,40 +2234,42 @@ nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_wor } RET_LABEL:; } -/* method parser#ReduceAction167#action for (self: ReduceAction167, Parser) */ -void nit__parser___nit__parser__ReduceAction167___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction208#action for (self: ReduceAction208, Parser) */ +void nit__parser___nit__parser__ReduceAction208___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : Array[Object] */; -val* var_listnode3 /* var listnode3: Array[Object] */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; +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* var6 /* : null */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var10 /* : Bool */; -short int var11 /* : Bool */; -val* var_tkwendnode4 /* var tkwendnode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : ABlockExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +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* var12 /* : AAttrAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */; +long var13 /* : Int */; +long var14 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -2488,239 +2282,249 @@ var_nodearraylist2 = var2; var3 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var3; -var4 = NEW_standard__Array(&type_standard__Array__standard__Object); +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_listnode3 = var4; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { +var_pexprnode2 = var4; +var_tattridnode3 = var_nodearraylist2; +/* isa nullable TAttrid */ +cltype = type_nullable__nit__TAttrid.color; +idtype = type_nullable__nit__TAttrid.id; +if(var_tattridnode3 == NULL) { var5 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) { var5 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var5 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5500); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5842); +fatal_exit(1); } -var6 = NULL; -if (var_pexprnode2 == NULL) { -var7 = 0; /* is null */ +var_tassignnode4 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype7 = type_nullable__nit__TAssign.color; +idtype8 = type_nullable__nit__TAssign.id; +if(var_tassignnode4 == NULL) { +var6 = 1; } else { -var7 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var6) on */ -var_other = var6; -{ -var10 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; -} -var11 = !var10; -var8 = var11; -goto RET_LABEL9; -RET_LABEL9:(void)0; -} -var7 = var8; +if(cltype7 >= (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->table_size) { +var6 = 0; +} else { +var6 = (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->type_table[cltype7] == idtype8; } -if (var7){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on */ } -} else { +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5844); +fatal_exit(1); } -var_tkwendnode4 = var_nodearraylist3; -/* isa nullable TKwend */ -cltype13 = type_nullable__nit__TKwend.color; -idtype14 = type_nullable__nit__TKwend.id; -if(var_tkwendnode4 == NULL) { -var12 = 1; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var9 = 1; } else { -if(cltype13 >= var_tkwendnode4->type->table_size) { -var12 = 0; +if(cltype10 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var9 = 0; } else { -var12 = var_tkwendnode4->type->type_table[cltype13] == idtype14; +var9 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var12)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5505); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5846); +fatal_exit(1); } -var15 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); +var12 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var15, var_listnode3, var_tkwendnode4); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___AAttrAssignExpr___init_aattrassignexpr(var12, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ } -var_pexprnode1 = var15; +var_pexprnode1 = var12; var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var17 = nit___nit__Parser___go_to(var_p, var16); +var14 = nit___nit__Parser___go_to(var_p, var13); } { -nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction168#action for (self: ReduceAction168, Parser) */ -void nit__parser___nit__parser__ReduceAction168___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction209#action for (self: ReduceAction209, Parser) */ +void nit__parser___nit__parser__ReduceAction209___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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_pexprnode2 /* var pexprnode2: nullable Object */; -short int var6 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var_listnode3 /* var listnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : null */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var_other /* var other: nullable Object */; +int cltype12; +int idtype13; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; short int var14 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : Array[Object] */; -val* var_tkwendnode5 /* var tkwendnode5: nullable Object */; +int cltype15; +int idtype16; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var17 /* : Bool */; int cltype18; int idtype19; -val* var20 /* : ABlockExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */; +val* var20 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; long var21 /* : Int */; long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var5 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_nodearraylist3 = var4; { -standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on */ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_listnode4 = var5; +var_nodearraylist1 = var6; var_pexprnode2 = var_nodearraylist1; /* isa nullable AExpr */ cltype = type_nullable__nit__AExpr.color; idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { -var6 = 1; +var7 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var6 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var7 = 0; } else { -var6 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var6)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5525); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5870); +fatal_exit(1); } -var_listnode3 = var_nodearraylist2; -/* isa Array[Object] */ -cltype8 = type_standard__Array__standard__Object.color; -idtype9 = type_standard__Array__standard__Object.id; -if(var_listnode3 == NULL) { -var7 = 0; +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype9 = type_nullable__nit__TId.color; +idtype10 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; } else { -if(cltype8 >= var_listnode3->type->table_size) { -var7 = 0; +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var8 = 0; } else { -var7 = var_listnode3->type->type_table[cltype8] == idtype9; +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var7)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5527); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5872); +fatal_exit(1); } -var10 = NULL; -if (var_pexprnode2 == NULL) { -var11 = 0; /* is null */ +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype12 = type_nullable__nit__AExprs.color; +idtype13 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; } else { -var11 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_pexprnode2,var10) on */ -var_other = var10; -{ -var14 = ((short int (*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on */; -} -var15 = !var14; -var12 = var15; -goto RET_LABEL13; -RET_LABEL13:(void)0; +if(cltype12 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype12] == idtype13; } -var11 = var12; } -if (var11){ -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on */ +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5874); +fatal_exit(1); } +var_tassignnode5 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype15 = type_nullable__nit__TAssign.color; +idtype16 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var14 = 1; +} else { +if(cltype15 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var14 = 0; } else { +var14 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype15] == idtype16; } -{ -var16 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3); } -var_listnode4 = var16; -var_tkwendnode5 = var_nodearraylist4; -/* isa nullable TKwend */ -cltype18 = type_nullable__nit__TKwend.color; -idtype19 = type_nullable__nit__TKwend.id; -if(var_tkwendnode5 == NULL) { +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5876); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { var17 = 1; } else { -if(cltype18 >= var_tkwendnode5->type->table_size) { +if(cltype18 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { var17 = 0; } else { -var17 = var_tkwendnode5->type->type_table[cltype18] == idtype19; +var17 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype18] == idtype19; } } if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5533); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5878); +fatal_exit(1); } -var20 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr); +var20 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ABlockExpr___init_ablockexpr(var20, var_listnode4, var_tkwendnode5); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } var_pexprnode1 = var20; var_node_list = var_pexprnode1; -var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { var22 = nit___nit__Parser___go_to(var_p, var21); } @@ -2729,738 +2533,716 @@ nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_wor } RET_LABEL:; } -/* method parser#ReduceAction172#action for (self: ReduceAction172, Parser) */ -void nit__parser___nit__parser__ReduceAction172___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction210#action for (self: ReduceAction210, Parser) */ +void nit__parser___nit__parser__ReduceAction210___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */; -short int var2 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var3 /* : AReturnExpr */; -val* var4 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */; -long var5 /* : Int */; -long var6 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var11 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode7 /* var pexprnode7: 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; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var1; -var_tkwreturnnode2 = var_nodearraylist1; -/* isa nullable TKwreturn */ -cltype = type_nullable__nit__TKwreturn.color; -idtype = type_nullable__nit__TKwreturn.id; -if(var_tkwreturnnode2 == NULL) { -var2 = 1; -} else { -if(cltype >= var_tkwreturnnode2->type->table_size) { -var2 = 0; -} else { -var2 = var_tkwreturnnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var2)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5549); -show_backtrace(1); -} -var3 = NEW_nit__AReturnExpr(&type_nit__AReturnExpr); -var4 = NULL; -{ -nit__parser_prod___AReturnExpr___init_areturnexpr(var3, var_tkwreturnnode2, var4); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on */ -} -var_pexprnode1 = var3; -var_node_list = var_pexprnode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var6 = nit___nit__Parser___go_to(var_p, var5); -} +var_node_list = ((val*)NULL); { -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; +var = nit___nit__Parser___pop(var_p); } -/* method parser#ReduceAction173#action for (self: ReduceAction173, Parser) */ -void nit__parser___nit__parser__ReduceAction173___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var_pexprnode3 /* var pexprnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : AReturnExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */; -long var8 /* : Int */; -long var9 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var2; -var_tkwreturnnode2 = var_nodearraylist1; -/* isa nullable TKwreturn */ -cltype = type_nullable__nit__TKwreturn.color; -idtype = type_nullable__nit__TKwreturn.id; -if(var_tkwreturnnode2 == NULL) { -var3 = 1; -} else { -if(cltype >= var_tkwreturnnode2->type->table_size) { -var3 = 0; -} else { -var3 = var_tkwreturnnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var3)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5566); -show_backtrace(1); -} -var_pexprnode3 = var_nodearraylist2; -/* isa nullable AExpr */ -cltype5 = type_nullable__nit__AExpr.color; -idtype6 = type_nullable__nit__AExpr.id; -if(var_pexprnode3 == NULL) { -var4 = 1; -} else { -if(cltype5 >= var_pexprnode3->type->table_size) { -var4 = 0; -} else { -var4 = var_pexprnode3->type->type_table[cltype5] == idtype6; -} -} -if (unlikely(!var4)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5568); -show_backtrace(1); -} -var7 = NEW_nit__AReturnExpr(&type_nit__AReturnExpr); -{ -nit__parser_prod___AReturnExpr___init_areturnexpr(var7, var_tkwreturnnode2, var_pexprnode3); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on */ -} -var_pexprnode1 = var7; -var_node_list = var_pexprnode1; -var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var9 = nit___nit__Parser___go_to(var_p, var8); -} -{ -nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction174#action for (self: ReduceAction174, Parser) */ -void nit__parser___nit__parser__ReduceAction174___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */; -short int var2 /* : Bool */; -int cltype; -int idtype; -val* var3 /* : ABreakExpr */; -val* var4 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */; -long var5 /* : Int */; -long var6 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var_nodearraylist4 = var2; { -var1 = nit___nit__Parser___pop(var_p); +var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var_tkwbreaknode2 = var_nodearraylist1; -/* isa nullable TKwbreak */ -cltype = type_nullable__nit__TKwbreak.color; -idtype = type_nullable__nit__TKwbreak.id; -if(var_tkwbreaknode2 == NULL) { -var2 = 1; +var_nodearraylist3 = var3; +{ +var4 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_tkwbreaknode2->type->table_size) { -var2 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var6 = 0; } else { -var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype; +var6 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var2)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5584); -show_backtrace(1); -} -var3 = NEW_nit__ABreakExpr(&type_nit__ABreakExpr); -var4 = NULL; -{ -nit__parser_prod___ABreakExpr___init_abreakexpr(var3, var_tkwbreaknode2, var4); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on */ +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5902); +fatal_exit(1); } -var_pexprnode1 = var3; -var_node_list = var_pexprnode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var6 = nit___nit__Parser___go_to(var_p, var5); +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype8 = type_nullable__nit__TId.color; +idtype9 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype8] == idtype9; } -{ -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ } -RET_LABEL:; +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5904); +fatal_exit(1); } -/* method parser#ReduceAction175#action for (self: ReduceAction175, Parser) */ -void nit__parser___nit__parser__ReduceAction175___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var_plabelnode3 /* var plabelnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : ABreakExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */; -long var8 /* : Int */; -long var9 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var10 = NEW_standard__Array(&type_standard__Array__standard__Object); { -var1 = nit___nit__Parser___pop(var_p); +standard___standard__Array___standard__kernel__Object__init(var10); /* Direct call array#Array#init on */ } -var_nodearraylist2 = var1; +var_listnode5 = var10; +var11 = NEW_nit__AListExprs(&type_nit__AListExprs); { -var2 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AListExprs___init_alistexprs(var11, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_nodearraylist1 = var2; -var_tkwbreaknode2 = var_nodearraylist1; -/* isa nullable TKwbreak */ -cltype = type_nullable__nit__TKwbreak.color; -idtype = type_nullable__nit__TKwbreak.id; -if(var_tkwbreaknode2 == NULL) { -var3 = 1; +var_pexprsnode4 = var11; +var_tassignnode6 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype13 = type_nullable__nit__TAssign.color; +idtype14 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { +var12 = 1; } else { -if(cltype >= var_tkwbreaknode2->type->table_size) { -var3 = 0; +if(cltype13 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { +var12 = 0; } else { -var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype; +var12 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var3)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5601); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5910); +fatal_exit(1); } -var_plabelnode3 = var_nodearraylist2; -/* isa nullable ALabel */ -cltype5 = type_nullable__nit__ALabel.color; -idtype6 = type_nullable__nit__ALabel.id; -if(var_plabelnode3 == NULL) { -var4 = 1; +var_pexprnode7 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype16 = type_nullable__nit__AExpr.color; +idtype17 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var15 = 1; } else { -if(cltype5 >= var_plabelnode3->type->table_size) { -var4 = 0; +if(cltype16 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var15 = 0; } else { -var4 = var_plabelnode3->type->type_table[cltype5] == idtype6; +var15 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype16] == idtype17; } } -if (unlikely(!var4)) { +if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5603); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5912); +fatal_exit(1); } -var7 = NEW_nit__ABreakExpr(&type_nit__ABreakExpr); +var18 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ABreakExpr___init_abreakexpr(var7, var_tkwbreaknode2, var_plabelnode3); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var7; +var_pexprnode1 = var18; var_node_list = var_pexprnode1; -var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var9 = nit___nit__Parser___go_to(var_p, var8); +var20 = nit___nit__Parser___go_to(var_p, var19); } { -nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction176#action for (self: ReduceAction176, Parser) */ -void nit__parser___nit__parser__ReduceAction176___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction211#action for (self: ReduceAction211, Parser) */ +void nit__parser___nit__parser__ReduceAction211___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var1 /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var2 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var3 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var4 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwabortnode2 /* var tkwabortnode2: nullable Object */; -short int var2 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var8 /* : Bool */; int cltype; int idtype; -val* var3 /* : AAbortExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AAbortExpr */; -long var4 /* : Int */; -long var5 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_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; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var1; -var_tkwabortnode2 = var_nodearraylist1; -/* isa nullable TKwabort */ -cltype = type_nullable__nit__TKwabort.color; -idtype = type_nullable__nit__TKwabort.id; -if(var_tkwabortnode2 == NULL) { -var2 = 1; -} else { -if(cltype >= var_tkwabortnode2->type->table_size) { -var2 = 0; -} else { -var2 = var_tkwabortnode2->type->type_table[cltype] == idtype; +var = nit___nit__Parser___pop(var_p); } +var_nodearraylist8 = var; +{ +var1 = nit___nit__Parser___pop(var_p); } -if (unlikely(!var2)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5619); -show_backtrace(1); +var_nodearraylist7 = var1; +{ +var2 = nit___nit__Parser___pop(var_p); } -var3 = NEW_nit__AAbortExpr(&type_nit__AAbortExpr); +var_nodearraylist6 = var2; { -nit__parser_prod___AAbortExpr___init_aabortexpr(var3, var_tkwabortnode2); /* Direct call parser_prod#AAbortExpr#init_aabortexpr on */ +var3 = nit___nit__Parser___pop(var_p); } -var_pexprnode1 = var3; -var_node_list = var_pexprnode1; -var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_nodearraylist5 = var3; { -var5 = nit___nit__Parser___go_to(var_p, var4); +var4 = nit___nit__Parser___pop(var_p); } +var_nodearraylist4 = var4; { -nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on */ +var5 = nit___nit__Parser___pop(var_p); } -RET_LABEL:; +var_nodearraylist3 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -/* method parser#ReduceAction177#action for (self: ReduceAction177, Parser) */ -void nit__parser___nit__parser__ReduceAction177___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */; -short int var2 /* : Bool */; -int cltype; -int idtype; -val* var3 /* : AContinueExpr */; -val* var4 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */; -long var5 /* : Int */; -long var6 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var_nodearraylist2 = var6; { -var1 = nit___nit__Parser___pop(var_p); +var7 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var_tkwcontinuenode2 = var_nodearraylist1; -/* isa nullable TKwcontinue */ -cltype = type_nullable__nit__TKwcontinue.color; -idtype = type_nullable__nit__TKwcontinue.id; -if(var_tkwcontinuenode2 == NULL) { -var2 = 1; +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_tkwcontinuenode2->type->table_size) { -var2 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var8 = 0; } else { -var2 = var_tkwcontinuenode2->type->type_table[cltype] == idtype; +var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var2)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5634); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5938); +fatal_exit(1); } -var3 = NEW_nit__AContinueExpr(&type_nit__AContinueExpr); -var4 = NULL; -{ -nit__parser_prod___AContinueExpr___init_acontinueexpr(var3, var_tkwcontinuenode2, var4); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on */ +var_tidnode3 = var_nodearraylist5; +/* isa nullable TId */ +cltype10 = type_nullable__nit__TId.color; +idtype11 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var9 = 1; +} else { +if(cltype10 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var9 = 0; +} else { +var9 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype10] == idtype11; } -var_pexprnode1 = var3; -var_node_list = var_pexprnode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var6 = nit___nit__Parser___go_to(var_p, var5); } -{ -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5940); +fatal_exit(1); } -RET_LABEL:; +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype13 = type_nullable__nit__AExprs.color; +idtype14 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var12 = 1; +} else { +if(cltype13 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var12 = 0; +} else { +var12 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype13] == idtype14; } -/* method parser#ReduceAction178#action for (self: ReduceAction178, Parser) */ -void nit__parser___nit__parser__ReduceAction178___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */; -short int var3 /* : Bool */; -int cltype; -int idtype; -val* var_plabelnode3 /* var plabelnode3: nullable Object */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -val* var7 /* : AContinueExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */; -long var8 /* : Int */; -long var9 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5942); +fatal_exit(1); } -var_nodearraylist1 = var2; -var_tkwcontinuenode2 = var_nodearraylist1; -/* isa nullable TKwcontinue */ -cltype = type_nullable__nit__TKwcontinue.color; -idtype = type_nullable__nit__TKwcontinue.id; -if(var_tkwcontinuenode2 == NULL) { -var3 = 1; +var_tassignnode5 = var_nodearraylist7; +/* isa nullable TAssign */ +cltype16 = type_nullable__nit__TAssign.color; +idtype17 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var15 = 1; } else { -if(cltype >= var_tkwcontinuenode2->type->table_size) { -var3 = 0; +if(cltype16 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var15 = 0; } else { -var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype; +var15 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype16] == idtype17; } } -if (unlikely(!var3)) { +if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5651); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5944); +fatal_exit(1); } -var_plabelnode3 = var_nodearraylist2; -/* isa nullable ALabel */ -cltype5 = type_nullable__nit__ALabel.color; -idtype6 = type_nullable__nit__ALabel.id; -if(var_plabelnode3 == NULL) { -var4 = 1; +var_pexprnode6 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype19 = type_nullable__nit__AExpr.color; +idtype20 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var18 = 1; } else { -if(cltype5 >= var_plabelnode3->type->table_size) { -var4 = 0; +if(cltype19 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var18 = 0; } else { -var4 = var_plabelnode3->type->type_table[cltype5] == idtype6; +var18 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype19] == idtype20; } } -if (unlikely(!var4)) { +if (unlikely(!var18)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5653); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5946); +fatal_exit(1); } -var7 = NEW_nit__AContinueExpr(&type_nit__AContinueExpr); +var21 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___AContinueExpr___init_acontinueexpr(var7, var_tkwcontinuenode2, var_plabelnode3); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var7; +var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var9 = nit___nit__Parser___go_to(var_p, var8); +var23 = nit___nit__Parser___go_to(var_p, var22); } { -nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction185#action for (self: ReduceAction185, Parser) */ -void nit__parser___nit__parser__ReduceAction185___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction212#action for (self: ReduceAction212, Parser) */ +void nit__parser___nit__parser__ReduceAction212___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var6 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var14 /* : Int */; -long var15 /* : Int */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var11 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var12 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var20 /* : Int */; +long var21 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var4; +var_nodearraylist3 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var5; +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var6; var_pexprnode2 = var_nodearraylist1; /* isa nullable AExpr */ cltype = type_nullable__nit__AExpr.color; idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { -var6 = 1; +var7 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var6 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var7 = 0; } else { -var6 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var6)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5673); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5971); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist4; +var_tidnode3 = var_nodearraylist5; /* isa nullable TId */ -cltype8 = type_nullable__nit__TId.color; -idtype9 = type_nullable__nit__TId.id; +cltype9 = type_nullable__nit__TId.color; +idtype10 = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var7 = 1; +var8 = 1; } else { -if(cltype8 >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var8 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype8] == idtype9; +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var7)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5675); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5973); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist5; -/* isa nullable AExprs */ -cltype11 = type_nullable__nit__AExprs.color; -idtype12 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var10 = 1; +var11 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var11); /* Direct call array#Array#init on */ +} +var_listnode5 = var11; +var12 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var12; +var_tassignnode6 = var_nodearraylist6; +/* isa nullable TAssign */ +cltype14 = type_nullable__nit__TAssign.color; +idtype15 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { +var13 = 1; } else { -if(cltype11 >= var_pexprsnode4->type->table_size) { -var10 = 0; +if(cltype14 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { +var13 = 0; } else { -var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; +var13 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var10)) { +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5979); +fatal_exit(1); +} +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype17 = type_nullable__nit__AExpr.color; +idtype18 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var16 = 1; +} else { +if(cltype17 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var16 = 0; +} else { +var16 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5677); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5981); +fatal_exit(1); } -var13 = NEW_nit__ACallExpr(&type_nit__ACallExpr); +var19 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ACallExpr___init_acallexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var13; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var15 = nit___nit__Parser___go_to(var_p, var14); +var21 = nit___nit__Parser___go_to(var_p, var20); } { -nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction186#action for (self: ReduceAction186, Parser) */ -void nit__parser___nit__parser__ReduceAction186___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction213#action for (self: ReduceAction213, Parser) */ +void nit__parser___nit__parser__ReduceAction213___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: 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_pexprnode2 /* var pexprnode2: nullable Object */; -short int var7 /* : Bool */; +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 var11 /* : Bool */; -int cltype12; -int idtype13; -val* var14 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var15 /* : Int */; -long var16 /* : Int */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_tassignnode5 /* var tassignnode5: 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 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var23 /* : Int */; +long var24 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist9 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var1; +var_nodearraylist8 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var2; +var_nodearraylist7 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var3; +var_nodearraylist6 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var4; +var_nodearraylist5 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var5; +var_nodearraylist4 = var5; { var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var6; +var_nodearraylist3 = var6; +{ +var7 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var7; +{ +var8 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var8; var_pexprnode2 = var_nodearraylist1; /* isa nullable AExpr */ cltype = type_nullable__nit__AExpr.color; idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { -var7 = 1; +var9 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var7 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var9 = 0; } else { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; +var9 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5699); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6008); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist5; +var_tidnode3 = var_nodearraylist6; /* isa nullable TId */ -cltype9 = type_nullable__nit__TId.color; -idtype10 = type_nullable__nit__TId.id; +cltype11 = type_nullable__nit__TId.color; +idtype12 = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var8 = 1; +var10 = 1; } else { -if(cltype9 >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype11 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var10 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype9] == idtype10; +var10 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var8)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5701); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6010); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist6; +var_pexprsnode4 = var_nodearraylist7; /* isa nullable AExprs */ -cltype12 = type_nullable__nit__AExprs.color; -idtype13 = type_nullable__nit__AExprs.id; +cltype14 = type_nullable__nit__AExprs.color; +idtype15 = type_nullable__nit__AExprs.id; if(var_pexprsnode4 == NULL) { -var11 = 1; +var13 = 1; } else { -if(cltype12 >= var_pexprsnode4->type->table_size) { -var11 = 0; +if(cltype14 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var13 = 0; +} else { +var13 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype14] == idtype15; +} +} +if (unlikely(!var13)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6012); +fatal_exit(1); +} +var_tassignnode5 = var_nodearraylist8; +/* isa nullable TAssign */ +cltype17 = type_nullable__nit__TAssign.color; +idtype18 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var16 = 1; +} else { +if(cltype17 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var16 = 0; +} else { +var16 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype17] == idtype18; +} +} +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6014); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype20 = type_nullable__nit__AExpr.color; +idtype21 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var19 = 1; +} else { +if(cltype20 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var19 = 0; } else { -var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13; +var19 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype20] == idtype21; } } -if (unlikely(!var11)) { +if (unlikely(!var19)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5703); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6016); +fatal_exit(1); } -var14 = NEW_nit__ACallExpr(&type_nit__ACallExpr); +var22 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ACallExpr___init_acallexpr(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var14; +var_pexprnode1 = var22; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var16 = nit___nit__Parser___go_to(var_p, var15); +var24 = nit___nit__Parser___go_to(var_p, var23); } { -nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction187#action for (self: ReduceAction187, Parser) */ -void nit__parser___nit__parser__ReduceAction187___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction214#action for (self: ReduceAction214, Parser) */ +void nit__parser___nit__parser__ReduceAction214___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; @@ -3483,17 +3265,28 @@ val* var_tidnode3 /* var tidnode3: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +val* var12 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var13 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var21 /* : Int */; +long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -3529,16 +3322,16 @@ idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var8 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5726); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6042); +fatal_exit(1); } var_tidnode3 = var_nodearraylist6; /* isa nullable TId */ @@ -3547,147 +3340,84 @@ idtype11 = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { +if(cltype10 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var9 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var9 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype10] == idtype11; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5728); -show_backtrace(1); -} -var_pexprsnode4 = var_nodearraylist7; -/* isa nullable AExprs */ -cltype13 = type_nullable__nit__AExprs.color; -idtype14 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var12 = 1; -} else { -if(cltype13 >= var_pexprsnode4->type->table_size) { -var12 = 0; -} else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; -} -} -if (unlikely(!var12)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5730); -show_backtrace(1); -} -var15 = NEW_nit__ACallExpr(&type_nit__ACallExpr); -{ -nit__parser_prod___ACallExpr___init_acallexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ -} -var_pexprnode1 = var15; -var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var17 = nit___nit__Parser___go_to(var_p, var16); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6044); +fatal_exit(1); } +var12 = NEW_standard__Array(&type_standard__Array__standard__Object); { -nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction189#action for (self: ReduceAction189, Parser) */ -void nit__parser___nit__parser__ReduceAction189___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var5 /* : Bool */; -int cltype; -int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var10 /* : Int */; -long var11 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); +standard___standard__Array___standard__kernel__Object__init(var12); /* Direct call array#Array#init on */ } -var_nodearraylist1 = var2; -var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_listnode5 = var12; +var13 = NEW_nit__AListExprs(&type_nit__AListExprs); { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on */ -RET_LABEL4:(void)0; -} +nit__parser_prod___AListExprs___init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprnode2 = var3; -var_tidnode3 = var_nodearraylist1; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var5 = 1; +var_pexprsnode4 = var13; +var_tassignnode6 = var_nodearraylist7; +/* isa nullable TAssign */ +cltype15 = type_nullable__nit__TAssign.color; +idtype16 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { +var14 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var5 = 0; +if(cltype15 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { +var14 = 0; } else { -var5 = var_tidnode3->type->type_table[cltype] == idtype; +var14 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var5)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5749); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6050); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype7 = type_nullable__nit__AExprs.color; -idtype8 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var6 = 1; +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var17 = 1; } else { -if(cltype7 >= var_pexprsnode4->type->table_size) { -var6 = 0; +if(cltype18 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var17 = 0; } else { -var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8; +var17 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype18] == idtype19; } } -if (unlikely(!var6)) { +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5751); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6052); +fatal_exit(1); } -var9 = NEW_nit__ACallExpr(&type_nit__ACallExpr); +var20 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ACallExpr___init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var9; +var_pexprnode1 = var20; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var11 = nit___nit__Parser___go_to(var_p, var10); +var22 = nit___nit__Parser___go_to(var_p, var21); } { -nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction190#action for (self: ReduceAction190, Parser) */ -void nit__parser___nit__parser__ReduceAction190___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction217#action for (self: ReduceAction217, Parser) */ +void nit__parser___nit__parser__ReduceAction217___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; @@ -3697,776 +3427,841 @@ val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; val* var4 /* : AImplicitSelfExpr */; val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var6 /* : Bool */; +short int var5 /* : Bool */; int cltype; int idtype; val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var11 /* : Int */; -long var12 /* : Int */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_tassignnode5 /* var tassignnode5: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var16 /* : Int */; +long var17 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var3; -var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); -{ -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ -RET_LABEL5:(void)0; -} -} -var_pexprnode2 = var4; -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var6 = 1; -} else { -if(cltype >= var_tidnode3->type->table_size) { -var6 = 0; -} else { -var6 = var_tidnode3->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var6)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5771); -show_backtrace(1); -} -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype8 = type_nullable__nit__AExprs.color; -idtype9 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var7 = 1; -} else { -if(cltype8 >= var_pexprsnode4->type->table_size) { -var7 = 0; -} else { -var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; -} -} -if (unlikely(!var7)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5773); -show_backtrace(1); -} -var10 = NEW_nit__ACallExpr(&type_nit__ACallExpr); -{ -nit__parser_prod___ACallExpr___init_acallexpr(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ -} -var_pexprnode1 = var10; -var_node_list = var_pexprnode1; -var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_node_list = ((val*)NULL); { -var12 = nit___nit__Parser___go_to(var_p, var11); -} -{ -nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ +var = nit___nit__Parser___pop(var_p); } -RET_LABEL:; -} -/* method parser#ReduceAction191#action for (self: ReduceAction191, Parser) */ -void nit__parser___nit__parser__ReduceAction191___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : ACallExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */; -long var12 /* : Int */; -long var13 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -} -var_pexprnode2 = var5; -var_tidnode3 = var_nodearraylist3; +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist1; /* isa nullable TId */ cltype = type_nullable__nit__TId.color; idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var7 = 1; +var5 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var5 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5794); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6075); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist4; +var_pexprsnode4 = var_nodearraylist2; /* isa nullable AExprs */ -cltype9 = type_nullable__nit__AExprs.color; -idtype10 = type_nullable__nit__AExprs.id; +cltype7 = type_nullable__nit__AExprs.color; +idtype8 = type_nullable__nit__AExprs.id; if(var_pexprsnode4 == NULL) { -var8 = 1; +var6 = 1; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { -var8 = 0; +if(cltype7 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var6 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var6 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype7] == idtype8; } } -if (unlikely(!var8)) { +if (unlikely(!var6)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6077); +fatal_exit(1); +} +var_tassignnode5 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype10 = type_nullable__nit__TAssign.color; +idtype11 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { +var9 = 1; +} else { +if(cltype10 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { +var9 = 0; +} else { +var9 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype10] == idtype11; +} +} +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6079); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype13 = type_nullable__nit__AExpr.color; +idtype14 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var12 = 1; +} else { +if(cltype13 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var12 = 0; +} else { +var12 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5796); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6081); +fatal_exit(1); } -var11 = NEW_nit__ACallExpr(&type_nit__ACallExpr); +var15 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ACallExpr___init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var11; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var13 = nit___nit__Parser___go_to(var_p, var12); +var17 = nit___nit__Parser___go_to(var_p, var16); } { -nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction193#action for (self: ReduceAction193, Parser) */ -void nit__parser___nit__parser__ReduceAction193___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction218#action for (self: ReduceAction218, Parser) */ +void nit__parser___nit__parser__ReduceAction218___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var2 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pqualifiednode2 /* var pqualifiednode2: nullable Object */; +val* var3 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; short int var4 /* : Bool */; int cltype; int idtype; -val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : ASuperExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */; -long var12 /* : Int */; -long var13 /* : Int */; +val* var5 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var6 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var14 /* : Int */; +long var15 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var1; +var_nodearraylist2 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var2; +var_nodearraylist1 = var2; +var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var3 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist1 = var3; -var_pqualifiednode2 = var_nodearraylist1; -/* isa nullable AQualified */ -cltype = type_nullable__nit__AQualified.color; -idtype = type_nullable__nit__AQualified.id; -if(var_pqualifiednode2 == NULL) { +var_pexprnode2 = var3; +var_tidnode3 = var_nodearraylist1; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { var4 = 1; } else { -if(cltype >= var_pqualifiednode2->type->table_size) { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var4 = 0; } else { -var4 = var_pqualifiednode2->type->type_table[cltype] == idtype; +var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5815); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6103); +fatal_exit(1); } -var_tkwsupernode3 = var_nodearraylist2; -/* isa nullable TKwsuper */ -cltype6 = type_nullable__nit__TKwsuper.color; -idtype7 = type_nullable__nit__TKwsuper.id; -if(var_tkwsupernode3 == NULL) { -var5 = 1; +var5 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on */ +} +var_listnode5 = var5; +var6 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var6; +var_tassignnode6 = var_nodearraylist2; +/* isa nullable TAssign */ +cltype8 = type_nullable__nit__TAssign.color; +idtype9 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { +var7 = 1; } else { -if(cltype6 >= var_tkwsupernode3->type->table_size) { -var5 = 0; +if(cltype8 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { +var7 = 0; } else { -var5 = var_tkwsupernode3->type->type_table[cltype6] == idtype7; +var7 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var5)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5817); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6109); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype9 = type_nullable__nit__AExprs.color; -idtype10 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var8 = 1; +var_pexprnode7 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype11 = type_nullable__nit__AExpr.color; +idtype12 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var10 = 1; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { -var8 = 0; +if(cltype11 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var10 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var10 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var8)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5819); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6111); +fatal_exit(1); } -var11 = NEW_nit__ASuperExpr(&type_nit__ASuperExpr); +var13 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___ASuperExpr___init_asuperexpr(var11, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var11; +var_pexprnode1 = var13; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var13 = nit___nit__Parser___go_to(var_p, var12); +var15 = nit___nit__Parser___go_to(var_p, var14); } { -nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction194#action for (self: ReduceAction194, Parser) */ -void nit__parser___nit__parser__ReduceAction194___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction219#action for (self: ReduceAction219, Parser) */ +void nit__parser___nit__parser__ReduceAction219___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var2 /* : nullable Object */; +val* var1 /* : 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_pexprnode2 /* var pexprnode2: 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_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var7 /* : Bool */; int cltype8; int idtype9; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_tassignnode5 /* var tassignnode5: 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 */; +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 */; +long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var4; +var_nodearraylist1 = var4; +var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var5 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist1 = var5; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var6 = 0; } else { -var6 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5840); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6135); +fatal_exit(1); } -var_tkwinitnode3 = var_nodearraylist4; -/* isa nullable TKwinit */ -cltype8 = type_nullable__nit__TKwinit.color; -idtype9 = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { +var_pexprsnode4 = var_nodearraylist3; +/* isa nullable AExprs */ +cltype8 = type_nullable__nit__AExprs.color; +idtype9 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { var7 = 1; } else { -if(cltype8 >= var_tkwinitnode3->type->table_size) { +if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { var7 = 0; } else { -var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9; +var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5842); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6137); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist5; -/* isa nullable AExprs */ -cltype11 = type_nullable__nit__AExprs.color; -idtype12 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_tassignnode5 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype11 = type_nullable__nit__TAssign.color; +idtype12 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { var10 = 1; } else { -if(cltype11 >= var_pexprsnode4->type->table_size) { +if(cltype11 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { var10 = 0; } else { -var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12; +var10 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype11] == idtype12; +} +} +if (unlikely(!var10)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6139); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype14 = type_nullable__nit__AExpr.color; +idtype15 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var13 = 1; +} else { +if(cltype14 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var13 = 0; +} else { +var13 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var10)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5844); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6141); +fatal_exit(1); } -var13 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var16 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var13; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var15 = nit___nit__Parser___go_to(var_p, var14); +var18 = nit___nit__Parser___go_to(var_p, var17); } { -nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction195#action for (self: ReduceAction195, Parser) */ -void nit__parser___nit__parser__ReduceAction195___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction220#action for (self: ReduceAction220, Parser) */ +void nit__parser___nit__parser__ReduceAction220___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var3 /* : AImplicitSelfExpr */; +val* var4 /* : AImplicitSelfExpr */; val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: nullable Object */; short int var5 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var9 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; -long var10 /* : Int */; -long var11 /* : Int */; +val* var6 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var7 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var2; -var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist2 = var2; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on */ -RET_LABEL4:(void)0; +var3 = nit___nit__Parser___pop(var_p); } +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +{ +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_pexprnode2 = var3; -var_tkwinitnode3 = var_nodearraylist1; -/* isa nullable TKwinit */ -cltype = type_nullable__nit__TKwinit.color; -idtype = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist2; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { var5 = 1; } else { -if(cltype >= var_tkwinitnode3->type->table_size) { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var5 = 0; } else { -var5 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5863); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6164); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype7 = type_nullable__nit__AExprs.color; -idtype8 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var6 = 1; +var6 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on */ +} +var_listnode5 = var6; +var7 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var7; +var_tassignnode6 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype9 = type_nullable__nit__TAssign.color; +idtype10 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { +var8 = 1; } else { -if(cltype7 >= var_pexprsnode4->type->table_size) { -var6 = 0; +if(cltype9 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { +var8 = 0; } else { -var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8; +var8 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var6)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5865); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6170); +fatal_exit(1); } -var9 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var_pexprnode7 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype12 = type_nullable__nit__AExpr.color; +idtype13 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6172); +fatal_exit(1); +} +var14 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var9; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var10 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var11 = nit___nit__Parser___go_to(var_p, var10); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction196#action for (self: ReduceAction196, Parser) */ -void nit__parser___nit__parser__ReduceAction196___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction221#action for (self: ReduceAction221, Parser) */ +void nit__parser___nit__parser__ReduceAction221___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; +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_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_tassignnode5 /* var tassignnode5: 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_pexprnode6 /* var pexprnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var17 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; +long var18 /* : Int */; +long var19 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var3; +var_nodearraylist3 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var4; +var_nodearraylist2 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var5; +var_nodearraylist1 = var5; +var6 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var6 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var6); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist1 = var6; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { var7 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var7 = 0; } else { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; +var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5887); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6197); +fatal_exit(1); } -var_tkwinitnode3 = var_nodearraylist5; -/* isa nullable TKwinit */ -cltype9 = type_nullable__nit__TKwinit.color; -idtype10 = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { +var_pexprsnode4 = var_nodearraylist4; +/* isa nullable AExprs */ +cltype9 = type_nullable__nit__AExprs.color; +idtype10 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { var8 = 1; } else { -if(cltype9 >= var_tkwinitnode3->type->table_size) { +if(cltype9 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { var8 = 0; } else { -var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10; +var8 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype9] == idtype10; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5889); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6199); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist6; -/* isa nullable AExprs */ -cltype12 = type_nullable__nit__AExprs.color; -idtype13 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_tassignnode5 = var_nodearraylist5; +/* isa nullable TAssign */ +cltype12 = type_nullable__nit__TAssign.color; +idtype13 = type_nullable__nit__TAssign.id; +if(var_tassignnode5 == NULL) { var11 = 1; } else { -if(cltype12 >= var_pexprsnode4->type->table_size) { +if(cltype12 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) { var11 = 0; } else { -var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13; +var11 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype12] == idtype13; } } if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5891); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6201); +fatal_exit(1); } -var14 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var_pexprnode6 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype15 = type_nullable__nit__AExpr.color; +idtype16 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var14 = 1; +} else { +if(cltype15 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var14 = 0; +} else { +var14 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype15] == idtype16; +} +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6203); +fatal_exit(1); +} +var17 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } -var_pexprnode1 = var14; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var16 = nit___nit__Parser___go_to(var_p, var15); +var19 = nit___nit__Parser___go_to(var_p, var18); } { -nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction197#action for (self: ReduceAction197, Parser) */ -void nit__parser___nit__parser__ReduceAction197___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction222#action for (self: ReduceAction222, Parser) */ +void nit__parser___nit__parser__ReduceAction222___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var4 /* : nullable Object */; +val* var1 /* : 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_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +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_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var7 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var8 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_tassignnode6 /* var tassignnode6: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var15 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; +val* var15 /* : ACallAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; long var16 /* : Int */; long var17 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var6; +var_nodearraylist1 = var4; +var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var7 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var8 = 1; +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist3; +/* isa nullable TId */ +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var6 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5914); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6227); +fatal_exit(1); } -var_tkwinitnode3 = var_nodearraylist6; -/* isa nullable TKwinit */ -cltype10 = type_nullable__nit__TKwinit.color; -idtype11 = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { +var7 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on */ +} +var_listnode5 = var7; +var8 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var8; +var_tassignnode6 = var_nodearraylist4; +/* isa nullable TAssign */ +cltype10 = type_nullable__nit__TAssign.color; +idtype11 = type_nullable__nit__TAssign.id; +if(var_tassignnode6 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tkwinitnode3->type->table_size) { +if(cltype10 >= (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->table_size) { var9 = 0; } else { -var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11; +var9 = (((long)var_tassignnode6&3)?type_info[((long)var_tassignnode6&3)]:var_tassignnode6->type)->type_table[cltype10] == idtype11; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5916); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6233); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist7; -/* isa nullable AExprs */ -cltype13 = type_nullable__nit__AExprs.color; -idtype14 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_pexprnode7 = var_nodearraylist5; +/* isa nullable AExpr */ +cltype13 = type_nullable__nit__AExpr.color; +idtype14 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { var12 = 1; } else { -if(cltype13 >= var_pexprsnode4->type->table_size) { +if(cltype13 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { var12 = 0; } else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +var12 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype13] == idtype14; } } if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5918); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6235); +fatal_exit(1); } -var15 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var15 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ } var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { var17 = nit___nit__Parser___go_to(var_p, var16); } @@ -4475,34 +4270,44 @@ nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_wor } RET_LABEL:; } -/* method parser#ReduceAction199#action for (self: ReduceAction199, Parser) */ -void nit__parser___nit__parser__ReduceAction199___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction225#action for (self: ReduceAction225, Parser) */ +void nit__parser___nit__parser__ReduceAction225___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: 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* var10 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; -long var11 /* : Int */; -long var12 /* : Int */; +val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_tassignnode4 /* var tassignnode4: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : ABraAssignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -4515,718 +4320,899 @@ var_nodearraylist2 = var2; var3 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var3; -var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); -{ -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ -RET_LABEL5:(void)0; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var4 = 0; +} else { +var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -var_pexprnode2 = var4; -var_tkwinitnode3 = var_nodearraylist2; -/* isa nullable TKwinit */ -cltype = type_nullable__nit__TKwinit.color; -idtype = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { -var6 = 1; +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6257); +fatal_exit(1); +} +var_pexprsnode3 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype6 = type_nullable__nit__AExprs.color; +idtype7 = type_nullable__nit__AExprs.id; +if(var_pexprsnode3 == NULL) { +var5 = 1; } else { -if(cltype >= var_tkwinitnode3->type->table_size) { -var6 = 0; +if(cltype6 >= (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->table_size) { +var5 = 0; } else { -var6 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var5 = (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->type_table[cltype6] == idtype7; } } -if (unlikely(!var6)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5938); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6259); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype8 = type_nullable__nit__AExprs.color; -idtype9 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var7 = 1; +var_tassignnode4 = var_nodearraylist3; +/* isa nullable TAssign */ +cltype9 = type_nullable__nit__TAssign.color; +idtype10 = type_nullable__nit__TAssign.id; +if(var_tassignnode4 == NULL) { +var8 = 1; } else { -if(cltype8 >= var_pexprsnode4->type->table_size) { -var7 = 0; +if(cltype9 >= (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->table_size) { +var8 = 0; } else { -var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9; +var8 = (((long)var_tassignnode4&3)?type_info[((long)var_tassignnode4&3)]:var_tassignnode4->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var7)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5940); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6261); +fatal_exit(1); +} +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype12 = type_nullable__nit__AExpr.color; +idtype13 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6263); +fatal_exit(1); } -var10 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var14 = NEW_nit__ABraAssignExpr(&type_nit__ABraAssignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___ABraAssignExpr___init_abraassignexpr(var14, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#ABraAssignExpr#init_abraassignexpr on */ } -var_pexprnode1 = var10; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var12 = nit___nit__Parser___go_to(var_p, var11); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction200#action for (self: ReduceAction200, Parser) */ -void nit__parser___nit__parser__ReduceAction200___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction226#action for (self: ReduceAction226, Parser) */ +void nit__parser___nit__parser__ReduceAction226___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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_tkwinitnode3 /* var tkwinitnode3: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var7 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_tattridnode3 /* var tattridnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var11 /* : AInitExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */; -long var12 /* : Int */; -long var13 /* : Int */; +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 */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist3 = var4; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +var5 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var5; -var_tkwinitnode3 = var_nodearraylist3; -/* isa nullable TKwinit */ -cltype = type_nullable__nit__TKwinit.color; -idtype = type_nullable__nit__TKwinit.id; -if(var_tkwinitnode3 == NULL) { +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { var7 = 1; } else { -if(cltype >= var_tkwinitnode3->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var7 = 0; } else { -var7 = var_tkwinitnode3->type->type_table[cltype] == idtype; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5961); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6287); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist4; -/* isa nullable AExprs */ -cltype9 = type_nullable__nit__AExprs.color; -idtype10 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_tattridnode3 = var_nodearraylist5; +/* isa nullable TAttrid */ +cltype9 = type_nullable__nit__TAttrid.color; +idtype10 = type_nullable__nit__TAttrid.id; +if(var_tattridnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { -var8 = 0; +if(cltype9 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) { +var8 = 0; +} else { +var8 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6289); +fatal_exit(1); +} +var_passignopnode4 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype12 = type_nullable__nit__AAssignOp.color; +idtype13 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->type_table[cltype12] == idtype13; +} +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6291); +fatal_exit(1); +} +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype15 = type_nullable__nit__AExpr.color; +idtype16 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var14 = 1; +} else { +if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var14 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var8)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5963); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6293); +fatal_exit(1); } -var11 = NEW_nit__AInitExpr(&type_nit__AInitExpr); +var17 = NEW_nit__AAttrReassignExpr(&type_nit__AAttrReassignExpr); { -nit__parser_prod___AInitExpr___init_ainitexpr(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on */ +nit__parser_prod___AAttrReassignExpr___init_aattrreassignexpr(var17, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ } -var_pexprnode1 = var11; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var12 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var13 = nit___nit__Parser___go_to(var_p, var12); +var19 = nit___nit__Parser___go_to(var_p, var18); } { -nit___nit__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction202#action for (self: ReduceAction202, Parser) */ -void nit__parser___nit__parser__ReduceAction202___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction227#action for (self: ReduceAction227, Parser) */ +void nit__parser___nit__parser__ReduceAction227___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var3 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var4 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var5 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */; -short int var6 /* : 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_tkwtypenode3 /* var tkwtypenode3: nullable Object */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var_pexprnode4 /* var pexprnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_ptypenode5 /* var ptypenode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : ADebugTypeExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +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 */; +long var13 /* : Int */; +long var14 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var4; +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var5; -var_tkwdebugnode2 = var_nodearraylist1; -/* isa nullable TKwdebug */ -cltype = type_nullable__nit__TKwdebug.color; -idtype = type_nullable__nit__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 (unlikely(!var6)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5984); -show_backtrace(1); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_tkwtypenode3 = var_nodearraylist2; -/* isa nullable TKwtype */ -cltype8 = type_nullable__nit__TKwtype.color; -idtype9 = type_nullable__nit__TKwtype.id; -if(var_tkwtypenode3 == NULL) { -var7 = 1; +var_pexprnode2 = var4; +var_tattridnode3 = var_nodearraylist2; +/* isa nullable TAttrid */ +cltype = type_nullable__nit__TAttrid.color; +idtype = type_nullable__nit__TAttrid.id; +if(var_tattridnode3 == NULL) { +var5 = 1; } else { -if(cltype8 >= var_tkwtypenode3->type->table_size) { -var7 = 0; +if(cltype >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) { +var5 = 0; } else { -var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9; +var5 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5986); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6315); +fatal_exit(1); } -var_pexprnode4 = var_nodearraylist5; -/* isa nullable AExpr */ -cltype11 = type_nullable__nit__AExpr.color; -idtype12 = type_nullable__nit__AExpr.id; -if(var_pexprnode4 == NULL) { -var10 = 1; +var_passignopnode4 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype7 = type_nullable__nit__AAssignOp.color; +idtype8 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode4 == NULL) { +var6 = 1; } else { -if(cltype11 >= var_pexprnode4->type->table_size) { -var10 = 0; +if(cltype7 >= (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->table_size) { +var6 = 0; } else { -var10 = var_pexprnode4->type->type_table[cltype11] == idtype12; +var6 = (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->type_table[cltype7] == idtype8; } } -if (unlikely(!var10)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5988); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6317); +fatal_exit(1); } -var_ptypenode5 = var_nodearraylist3; -/* isa nullable AType */ -cltype14 = type_nullable__nit__AType.color; -idtype15 = type_nullable__nit__AType.id; -if(var_ptypenode5 == NULL) { -var13 = 1; +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var9 = 1; } else { -if(cltype14 >= var_ptypenode5->type->table_size) { -var13 = 0; +if(cltype10 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var9 = 0; } else { -var13 = var_ptypenode5->type->type_table[cltype14] == idtype15; +var9 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var13)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 5990); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6319); +fatal_exit(1); } -var16 = NEW_nit__ADebugTypeExpr(&type_nit__ADebugTypeExpr); +var12 = NEW_nit__AAttrReassignExpr(&type_nit__AAttrReassignExpr); { -nit__parser_prod___ADebugTypeExpr___init_adebugtypeexpr(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5); /* Direct call parser_prod#ADebugTypeExpr#init_adebugtypeexpr on */ +nit__parser_prod___AAttrReassignExpr___init_aattrreassignexpr(var12, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ } -var_pexprnode1 = var16; +var_pexprnode1 = var12; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var13 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var18 = nit___nit__Parser___go_to(var_p, var17); +var14 = nit___nit__Parser___go_to(var_p, var13); } { -nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction203#action for (self: ReduceAction203, Parser) */ -void nit__parser___nit__parser__ReduceAction203___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction228#action for (self: ReduceAction228, Parser) */ +void nit__parser___nit__parser__ReduceAction228___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; -short int var2 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var7 /* : Bool */; int cltype; int idtype; -val* var3 /* : ALabel */; -val* var4 /* : null */; -val* var_plabelnode1 /* var plabelnode1: nullable ALabel */; -long var5 /* : Int */; -long var6 /* : Int */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var_passignopnode5 /* var passignopnode5: 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 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var21 /* : Int */; +long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var1; -var_tkwlabelnode2 = var_nodearraylist1; -/* isa nullable TKwlabel */ -cltype = type_nullable__nit__TKwlabel.color; -idtype = type_nullable__nit__TKwlabel.id; -if(var_tkwlabelnode2 == NULL) { -var2 = 1; -} else { -if(cltype >= var_tkwlabelnode2->type->table_size) { -var2 = 0; -} else { -var2 = var_tkwlabelnode2->type->type_table[cltype] == idtype; +var_nodearraylist7 = var; +{ +var1 = nit___nit__Parser___pop(var_p); } +var_nodearraylist6 = var1; +{ +var2 = nit___nit__Parser___pop(var_p); } -if (unlikely(!var2)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6008); -show_backtrace(1); +var_nodearraylist5 = var2; +{ +var3 = nit___nit__Parser___pop(var_p); } -var3 = NEW_nit__ALabel(&type_nit__ALabel); -var4 = NULL; +var_nodearraylist4 = var3; { -nit__parser_prod___ALabel___init_alabel(var3, var_tkwlabelnode2, var4); /* Direct call parser_prod#ALabel#init_alabel on */ +var4 = nit___nit__Parser___pop(var_p); } -var_plabelnode1 = var3; -var_node_list = var_plabelnode1; -var5 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_nodearraylist3 = var4; { -var6 = nit___nit__Parser___go_to(var_p, var5); +var5 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var5; { -nit___nit__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on */ +var6 = nit___nit__Parser___pop(var_p); } -RET_LABEL:; +var_nodearraylist1 = var6; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var7 = 1; +} else { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } -/* method parser#ReduceAction204#action for (self: ReduceAction204, Parser) */ -void nit__parser___nit__parser__ReduceAction204___nit__parser_work__ReduceAction__action(val* self, val* p0) { -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_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */; -short int var3 /* : 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 */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6343); +fatal_exit(1); +} +var_tidnode3 = var_nodearraylist4; +/* isa nullable TId */ +cltype9 = type_nullable__nit__TId.color; +idtype10 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var8 = 1; +} else { +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var8 = 0; +} else { +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; +} +} +if (unlikely(!var8)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6345); +fatal_exit(1); +} +var_pexprsnode4 = var_nodearraylist5; +/* isa nullable AExprs */ +cltype12 = type_nullable__nit__AExprs.color; +idtype13 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var11 = 1; +} else { +if(cltype12 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var11 = 0; +} else { +var11 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype12] == idtype13; +} } -var_nodearraylist1 = var2; -var_tkwlabelnode2 = var_nodearraylist1; -/* isa nullable TKwlabel */ -cltype = type_nullable__nit__TKwlabel.color; -idtype = type_nullable__nit__TKwlabel.id; -if(var_tkwlabelnode2 == NULL) { -var3 = 1; +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6347); +fatal_exit(1); +} +var_passignopnode5 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype15 = type_nullable__nit__AAssignOp.color; +idtype16 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var14 = 1; } else { -if(cltype >= var_tkwlabelnode2->type->table_size) { -var3 = 0; +if(cltype15 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var14 = 0; } else { -var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype; +var14 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var3)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6025); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6349); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype5 = type_nullable__nit__TId.color; -idtype6 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var4 = 1; +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var17 = 1; } else { -if(cltype5 >= var_tidnode3->type->table_size) { -var4 = 0; +if(cltype18 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var17 = 0; } else { -var4 = var_tidnode3->type->type_table[cltype5] == idtype6; +var17 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype18] == idtype19; } } -if (unlikely(!var4)) { +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6027); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6351); +fatal_exit(1); } -var7 = NEW_nit__ALabel(&type_nit__ALabel); +var20 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ALabel___init_alabel(var7, var_tkwlabelnode2, var_tidnode3); /* Direct call parser_prod#ALabel#init_alabel on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_plabelnode1 = var7; -var_node_list = var_plabelnode1; -var8 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_pexprnode1 = var20; +var_node_list = var_pexprnode1; +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var9 = nit___nit__Parser___go_to(var_p, var8); +var22 = nit___nit__Parser___go_to(var_p, var21); } { -nit___nit__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction205#action for (self: ReduceAction205, Parser) */ -void nit__parser___nit__parser__ReduceAction205___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction229#action for (self: ReduceAction229, Parser) */ +void nit__parser___nit__parser__ReduceAction229___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var4 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var6 /* : 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 var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var11 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var_pexprnode7 /* var pexprnode7: 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; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var3; -var_tkwvarnode2 = var_nodearraylist1; -/* isa nullable TKwvar */ -cltype = type_nullable__nit__TKwvar.color; -idtype = type_nullable__nit__TKwvar.id; -if(var_tkwvarnode2 == NULL) { -var4 = 1; +var_nodearraylist3 = var3; +{ +var4 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var5; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_tkwvarnode2->type->table_size) { -var4 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var6 = 0; } else { -var4 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var4)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6045); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6375); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist4; /* isa nullable TId */ -cltype6 = type_nullable__nit__TId.color; -idtype7 = type_nullable__nit__TId.id; +cltype8 = type_nullable__nit__TId.color; +idtype9 = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var5 = 1; +var7 = 1; } else { -if(cltype6 >= var_tidnode3->type->table_size) { -var5 = 0; +if(cltype8 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var7 = 0; } else { -var5 = var_tidnode3->type->type_table[cltype6] == idtype7; +var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var5)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6047); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6377); +fatal_exit(1); } -var_ptypenode4 = var_nodearraylist3; -/* isa nullable AType */ -cltype9 = type_nullable__nit__AType.color; -idtype10 = type_nullable__nit__AType.id; -if(var_ptypenode4 == NULL) { -var8 = 1; +var10 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var10); /* Direct call array#Array#init on */ +} +var_listnode5 = var10; +var11 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var11, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var11; +var_passignopnode6 = var_nodearraylist5; +/* isa nullable AAssignOp */ +cltype13 = type_nullable__nit__AAssignOp.color; +idtype14 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var12 = 1; } else { -if(cltype9 >= var_ptypenode4->type->table_size) { -var8 = 0; +if(cltype13 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var12 = 0; } else { -var8 = var_ptypenode4->type->type_table[cltype9] == idtype10; +var12 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var8)) { +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6383); +fatal_exit(1); +} +var_pexprnode7 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype16 = type_nullable__nit__AExpr.color; +idtype17 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var15 = 1; +} else { +if(cltype16 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var15 = 0; +} else { +var15 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6049); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6385); +fatal_exit(1); } -var11 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); -var12 = NULL; -var13 = NULL; -var14 = NULL; +var18 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___AVardeclExpr___init_avardeclexpr(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var11; +var_pexprnode1 = var18; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var16 = nit___nit__Parser___go_to(var_p, var15); +var20 = nit___nit__Parser___go_to(var_p, var19); } { -nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction206#action for (self: ReduceAction206, Parser) */ -void nit__parser___nit__parser__ReduceAction206___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction230#action for (self: ReduceAction230, Parser) */ +void nit__parser___nit__parser__ReduceAction230___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: 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* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; -short int var5 /* : 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 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 */; +val* var_pexprsnode4 /* var pexprsnode4: 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 */; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var22 /* : Int */; +long var23 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist7 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist6 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist5 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var_tkwvarnode2 = var_nodearraylist1; -/* isa nullable TKwvar */ -cltype = type_nullable__nit__TKwvar.color; -idtype = type_nullable__nit__TKwvar.id; -if(var_tkwvarnode2 == NULL) { -var5 = 1; +var_nodearraylist4 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var6; +{ +var7 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var7; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_tkwvarnode2->type->table_size) { -var5 = 0; +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var8 = 0; } else { -var5 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var5)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6072); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6411); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist5; /* isa nullable TId */ -cltype7 = type_nullable__nit__TId.color; -idtype8 = type_nullable__nit__TId.id; +cltype10 = type_nullable__nit__TId.color; +idtype11 = type_nullable__nit__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 (unlikely(!var6)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6074); -show_backtrace(1); -} -var_ptypenode4 = var_nodearraylist4; -/* isa nullable AType */ -cltype10 = type_nullable__nit__AType.color; -idtype11 = type_nullable__nit__AType.id; -if(var_ptypenode4 == NULL) { var9 = 1; } else { -if(cltype10 >= var_ptypenode4->type->table_size) { +if(cltype10 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var9 = 0; } else { -var9 = var_ptypenode4->type->type_table[cltype10] == idtype11; +var9 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype10] == idtype11; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6076); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6413); +fatal_exit(1); } -var_pannotationsnode7 = var_nodearraylist3; -/* isa nullable AAnnotations */ -cltype13 = type_nullable__nit__AAnnotations.color; -idtype14 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode7 == NULL) { +var_pexprsnode4 = var_nodearraylist6; +/* isa nullable AExprs */ +cltype13 = type_nullable__nit__AExprs.color; +idtype14 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { var12 = 1; } else { -if(cltype13 >= var_pannotationsnode7->type->table_size) { +if(cltype13 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { var12 = 0; } else { -var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14; +var12 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype13] == idtype14; } } if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6078); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6415); +fatal_exit(1); } -var15 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); -var16 = NULL; -var17 = NULL; +var_passignopnode5 = var_nodearraylist7; +/* isa nullable AAssignOp */ +cltype16 = type_nullable__nit__AAssignOp.color; +idtype17 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var15 = 0; +} else { +var15 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6417); +fatal_exit(1); +} +var_pexprnode6 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype19 = type_nullable__nit__AExpr.color; +idtype20 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var18 = 0; +} else { +var18 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6419); +fatal_exit(1); +} +var21 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___AVardeclExpr___init_avardeclexpr(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var15; +var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var19 = nit___nit__Parser___go_to(var_p, var18); +var23 = nit___nit__Parser___go_to(var_p, var22); } { -nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction207#action for (self: ReduceAction207, Parser) */ -void nit__parser___nit__parser__ReduceAction207___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction231#action for (self: ReduceAction231, Parser) */ +void nit__parser___nit__parser__ReduceAction231___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var2 /* : nullable Object */; @@ -5239,7 +5225,7 @@ val* var5 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; val* var6 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var7 /* : Bool */; int cltype; int idtype; @@ -5247,26 +5233,28 @@ val* var_tidnode3 /* var tidnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_ptypenode4 /* var ptypenode4: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : AVardeclExpr */; -val* var21 /* : null */; -val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */; -long var22 /* : Int */; -long var23 /* : Int */; +val* var11 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var12 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var20 /* : Int */; +long var21 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -5291,318 +5279,298 @@ var_nodearraylist2 = var5; var6 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var6; -var_tkwvarnode2 = var_nodearraylist1; -/* isa nullable TKwvar */ -cltype = type_nullable__nit__TKwvar.color; -idtype = type_nullable__nit__TKwvar.id; -if(var_tkwvarnode2 == NULL) { +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { var7 = 1; } else { -if(cltype >= var_tkwvarnode2->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var7 = 0; } else { -var7 = var_tkwvarnode2->type->type_table[cltype] == idtype; +var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6103); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6444); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist2; +var_tidnode3 = var_nodearraylist5; /* isa nullable TId */ cltype9 = type_nullable__nit__TId.color; idtype10 = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_tidnode3->type->table_size) { +if(cltype9 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var8 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype9] == idtype10; +var8 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype9] == idtype10; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6105); -show_backtrace(1); -} -var_ptypenode4 = var_nodearraylist3; -/* isa nullable AType */ -cltype12 = type_nullable__nit__AType.color; -idtype13 = type_nullable__nit__AType.id; -if(var_ptypenode4 == NULL) { -var11 = 1; -} else { -if(cltype12 >= var_ptypenode4->type->table_size) { -var11 = 0; -} else { -var11 = var_ptypenode4->type->type_table[cltype12] == idtype13; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6446); +fatal_exit(1); } +var11 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var11); /* Direct call array#Array#init on */ } -if (unlikely(!var11)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6107); -show_backtrace(1); +var_listnode5 = var11; +var12 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_tassignnode5 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype15 = type_nullable__nit__TAssign.color; -idtype16 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var14 = 1; +var_pexprsnode4 = var12; +var_passignopnode6 = var_nodearraylist6; +/* isa nullable AAssignOp */ +cltype14 = type_nullable__nit__AAssignOp.color; +idtype15 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var13 = 1; } else { -if(cltype15 >= var_tassignnode5->type->table_size) { -var14 = 0; +if(cltype14 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var13 = 0; } else { -var14 = var_tassignnode5->type->type_table[cltype15] == idtype16; +var13 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var14)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6109); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6452); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype18 = type_nullable__nit__AExpr.color; -idtype19 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var17 = 1; +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype17 = type_nullable__nit__AExpr.color; +idtype18 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var16 = 1; } else { -if(cltype18 >= var_pexprnode6->type->table_size) { -var17 = 0; +if(cltype17 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var16 = 0; } else { -var17 = var_pexprnode6->type->type_table[cltype18] == idtype19; +var16 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype17] == idtype18; } } -if (unlikely(!var17)) { +if (unlikely(!var16)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6111); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6454); +fatal_exit(1); } -var20 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); -var21 = NULL; +var19 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___AVardeclExpr___init_avardeclexpr(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var20; +var_pexprnode1 = var19; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var23 = nit___nit__Parser___go_to(var_p, var22); +var21 = nit___nit__Parser___go_to(var_p, var20); } { -nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction208#action for (self: ReduceAction208, Parser) */ -void nit__parser___nit__parser__ReduceAction208___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction232#action for (self: ReduceAction232, Parser) */ +void nit__parser___nit__parser__ReduceAction232___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var6 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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 var8 /* : 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 var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_ptypenode4 /* var ptypenode4: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; +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 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 var19 /* : Bool */; +int cltype20; +int idtype21; +val* var22 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var23 /* : Int */; +long var24 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist9 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist8 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist7 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist6 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; +var_nodearraylist5 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var5; +var_nodearraylist4 = var5; { var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var6; +var_nodearraylist3 = var6; { var7 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var7; -var_tkwvarnode2 = var_nodearraylist1; -/* isa nullable TKwvar */ -cltype = type_nullable__nit__TKwvar.color; -idtype = type_nullable__nit__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 (unlikely(!var8)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6137); -show_backtrace(1); +var_nodearraylist2 = var7; +{ +var8 = nit___nit__Parser___pop(var_p); } -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype10 = type_nullable__nit__TId.color; -idtype11 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_nodearraylist1 = var8; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var9 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var9 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6139); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6481); +fatal_exit(1); } -var_ptypenode4 = var_nodearraylist4; -/* isa nullable AType */ -cltype13 = type_nullable__nit__AType.color; -idtype14 = type_nullable__nit__AType.id; -if(var_ptypenode4 == NULL) { -var12 = 1; +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype11 = type_nullable__nit__TId.color; +idtype12 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { +var10 = 1; } else { -if(cltype13 >= var_ptypenode4->type->table_size) { -var12 = 0; +if(cltype11 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var10 = 0; } else { -var12 = var_ptypenode4->type->type_table[cltype13] == idtype14; +var10 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var12)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6141); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6483); +fatal_exit(1); } -var_tassignnode5 = var_nodearraylist5; -/* isa nullable TAssign */ -cltype16 = type_nullable__nit__TAssign.color; -idtype17 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var15 = 1; +var_pexprsnode4 = var_nodearraylist7; +/* isa nullable AExprs */ +cltype14 = type_nullable__nit__AExprs.color; +idtype15 = type_nullable__nit__AExprs.id; +if(var_pexprsnode4 == NULL) { +var13 = 1; } else { -if(cltype16 >= var_tassignnode5->type->table_size) { -var15 = 0; +if(cltype14 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var13 = 0; } else { -var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; +var13 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var15)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6143); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6485); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype19 = type_nullable__nit__AExpr.color; -idtype20 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var18 = 1; +var_passignopnode5 = var_nodearraylist8; +/* isa nullable AAssignOp */ +cltype17 = type_nullable__nit__AAssignOp.color; +idtype18 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var16 = 1; } else { -if(cltype19 >= var_pexprnode6->type->table_size) { -var18 = 0; +if(cltype17 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var16 = 0; } else { -var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; +var16 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype17] == idtype18; } } -if (unlikely(!var18)) { +if (unlikely(!var16)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6145); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6487); +fatal_exit(1); } -var_pannotationsnode7 = var_nodearraylist3; -/* isa nullable AAnnotations */ -cltype22 = type_nullable__nit__AAnnotations.color; -idtype23 = type_nullable__nit__AAnnotations.id; -if(var_pannotationsnode7 == NULL) { -var21 = 1; +var_pexprnode6 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype20 = type_nullable__nit__AExpr.color; +idtype21 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var19 = 1; } else { -if(cltype22 >= var_pannotationsnode7->type->table_size) { -var21 = 0; +if(cltype20 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var19 = 0; } else { -var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23; +var19 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype20] == idtype21; } } -if (unlikely(!var21)) { +if (unlikely(!var19)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6147); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6489); +fatal_exit(1); } -var24 = NEW_nit__AVardeclExpr(&type_nit__AVardeclExpr); +var22 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___AVardeclExpr___init_avardeclexpr(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var24; +var_pexprnode1 = var22; var_node_list = var_pexprnode1; -var25 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var26 = nit___nit__Parser___go_to(var_p, var25); +var24 = nit___nit__Parser___go_to(var_p, var23); } { -nit___nit__Parser___push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction209#action for (self: ReduceAction209, Parser) */ -void nit__parser___nit__parser__ReduceAction209___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction233#action for (self: ReduceAction233, Parser) */ +void nit__parser___nit__parser__ReduceAction233___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; @@ -5621,25 +5589,32 @@ val* var_pexprnode2 /* var pexprnode2: nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; -val* var_tattridnode3 /* var tattridnode3: nullable Object */; +val* var_tidnode3 /* var tidnode3: 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 */; +val* var12 /* : Array[Object] */; +val* var_listnode5 /* var listnode5: Array[Object] */; +val* var13 /* : AListExprs */; +val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var21 /* : Int */; +long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -5675,2589 +5650,2612 @@ idtype = type_nullable__nit__AExpr.id; if(var_pexprnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { var8 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6173); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6515); +fatal_exit(1); } -var_tattridnode3 = var_nodearraylist5; -/* isa nullable TAttrid */ -cltype10 = type_nullable__nit__TAttrid.color; -idtype11 = type_nullable__nit__TAttrid.id; -if(var_tattridnode3 == NULL) { +var_tidnode3 = var_nodearraylist6; +/* isa nullable TId */ +cltype10 = type_nullable__nit__TId.color; +idtype11 = type_nullable__nit__TId.id; +if(var_tidnode3 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tattridnode3->type->table_size) { +if(cltype10 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { var9 = 0; } else { -var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; -} -} -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6175); -show_backtrace(1); -} -var_tassignnode4 = var_nodearraylist6; -/* isa nullable TAssign */ -cltype13 = type_nullable__nit__TAssign.color; -idtype14 = type_nullable__nit__TAssign.id; -if(var_tassignnode4 == NULL) { -var12 = 1; -} else { -if(cltype13 >= var_tassignnode4->type->table_size) { -var12 = 0; -} else { -var12 = var_tassignnode4->type->type_table[cltype13] == idtype14; -} -} -if (unlikely(!var12)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6177); -show_backtrace(1); -} -var_pexprnode5 = var_nodearraylist7; -/* isa nullable AExpr */ -cltype16 = type_nullable__nit__AExpr.color; -idtype17 = type_nullable__nit__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 (unlikely(!var15)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6179); -show_backtrace(1); -} -var18 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr); -{ -nit__parser_prod___AAttrAssignExpr___init_aattrassignexpr(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ -} -var_pexprnode1 = var18; -var_node_list = var_pexprnode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var20 = nit___nit__Parser___go_to(var_p, var19); -} -{ -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction210#action for (self: ReduceAction210, Parser) */ -void nit__parser___nit__parser__ReduceAction210___nit__parser_work__ReduceAction__action(val* self, val* p0) { -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 var7 /* : Bool */; -int cltype; -int idtype; -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 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); -{ -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; -} -} -var_pexprnode2 = var5; -var_tattridnode3 = var_nodearraylist2; -/* isa nullable TAttrid */ -cltype = type_nullable__nit__TAttrid.color; -idtype = type_nullable__nit__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; +var9 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var7)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6201); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6517); +fatal_exit(1); } -var_tassignnode4 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype9 = type_nullable__nit__TAssign.color; -idtype10 = type_nullable__nit__TAssign.id; -if(var_tassignnode4 == NULL) { -var8 = 1; +var12 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var12); /* Direct call array#Array#init on */ +} +var_listnode5 = var12; +var13 = NEW_nit__AListExprs(&type_nit__AListExprs); +{ +nit__parser_prod___AListExprs___init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +} +var_pexprsnode4 = var13; +var_passignopnode6 = var_nodearraylist7; +/* isa nullable AAssignOp */ +cltype15 = type_nullable__nit__AAssignOp.color; +idtype16 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var14 = 1; } else { -if(cltype9 >= var_tassignnode4->type->table_size) { -var8 = 0; +if(cltype15 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var14 = 0; } else { -var8 = var_tassignnode4->type->type_table[cltype9] == idtype10; +var14 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var8)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6203); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6523); +fatal_exit(1); } -var_pexprnode5 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype12 = type_nullable__nit__AExpr.color; -idtype13 = type_nullable__nit__AExpr.id; -if(var_pexprnode5 == NULL) { -var11 = 1; +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var17 = 1; } else { -if(cltype12 >= var_pexprnode5->type->table_size) { -var11 = 0; +if(cltype18 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var17 = 0; } else { -var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; +var17 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype18] == idtype19; } } -if (unlikely(!var11)) { +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6205); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6525); +fatal_exit(1); } -var14 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr); +var20 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___AAttrAssignExpr___init_aattrassignexpr(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var14; +var_pexprnode1 = var20; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var16 = nit___nit__Parser___go_to(var_p, var15); +var22 = nit___nit__Parser___go_to(var_p, var21); } { -nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction211#action for (self: ReduceAction211, Parser) */ -void nit__parser___nit__parser__ReduceAction211___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction236#action for (self: ReduceAction236, Parser) */ +void nit__parser___nit__parser__ReduceAction236___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : 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_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; +val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +short int var6 /* : Bool */; +int cltype7; +int idtype8; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var9 /* : Bool */; int cltype10; int idtype11; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: 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 */; +val* var15 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var16 /* : Int */; +long var17 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var6; +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var8 = 1; -} else { -if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; -} else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var8)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6229); -show_backtrace(1); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_tidnode3 = var_nodearraylist4; +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist1; /* isa nullable TId */ -cltype10 = type_nullable__nit__TId.color; -idtype11 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var9 = 1; +var5 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { -var9 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var5 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var9)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6231); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6548); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist5; +var_pexprsnode4 = var_nodearraylist2; /* isa nullable AExprs */ -cltype13 = type_nullable__nit__AExprs.color; -idtype14 = type_nullable__nit__AExprs.id; +cltype7 = type_nullable__nit__AExprs.color; +idtype8 = type_nullable__nit__AExprs.id; if(var_pexprsnode4 == NULL) { -var12 = 1; +var6 = 1; } else { -if(cltype13 >= var_pexprsnode4->type->table_size) { -var12 = 0; +if(cltype7 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var6 = 0; } else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +var6 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype7] == idtype8; } } -if (unlikely(!var12)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6233); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6550); +fatal_exit(1); } -var_tassignnode5 = var_nodearraylist6; -/* isa nullable TAssign */ -cltype16 = type_nullable__nit__TAssign.color; -idtype17 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var15 = 1; +var_passignopnode5 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype10 = type_nullable__nit__AAssignOp.color; +idtype11 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var9 = 1; } else { -if(cltype16 >= var_tassignnode5->type->table_size) { -var15 = 0; +if(cltype10 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var9 = 0; } else { -var15 = var_tassignnode5->type->type_table[cltype16] == idtype17; +var9 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var15)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6235); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6552); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist7; +var_pexprnode6 = var_nodearraylist4; /* isa nullable AExpr */ -cltype19 = type_nullable__nit__AExpr.color; -idtype20 = type_nullable__nit__AExpr.id; +cltype13 = type_nullable__nit__AExpr.color; +idtype14 = type_nullable__nit__AExpr.id; if(var_pexprnode6 == NULL) { -var18 = 1; +var12 = 1; } else { -if(cltype19 >= var_pexprnode6->type->table_size) { -var18 = 0; +if(cltype13 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var12 = 0; } else { -var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; +var12 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var18)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6237); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6554); +fatal_exit(1); } -var21 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var15 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var21; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var23 = nit___nit__Parser___go_to(var_p, var22); +var17 = nit___nit__Parser___go_to(var_p, var16); } { -nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction212#action for (self: ReduceAction212, Parser) */ -void nit__parser___nit__parser__ReduceAction212___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction237#action for (self: ReduceAction237, Parser) */ +void nit__parser___nit__parser__ReduceAction237___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var7 /* : Bool */; +val* var3 /* : AImplicitSelfExpr */; +val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; +val* var_tidnode3 /* var tidnode3: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; +val* var5 /* : Array[Object] */; val* var_listnode5 /* var listnode5: Array[Object] */; -val* var12 /* : AListExprs */; +val* var6 /* : AListExprs */; val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var20 /* : Int */; -long var21 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist6 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist5 = var2; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var14 /* : Int */; +long var15 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); { -var3 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var3; +var_nodearraylist3 = var; { -var4 = nit___nit__Parser___pop(var_p); +var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var4; +var_nodearraylist2 = var1; { -var5 = nit___nit__Parser___pop(var_p); +var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var5; +var_nodearraylist1 = var2; +var3 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var6; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var7 = 1; -} else { -if(cltype >= var_pexprnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var7)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6261); -show_backtrace(1); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_tidnode3 = var_nodearraylist4; +var_pexprnode2 = var3; +var_tidnode3 = var_nodearraylist1; /* isa nullable TId */ -cltype9 = type_nullable__nit__TId.color; -idtype10 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var8 = 1; +var4 = 1; } else { -if(cltype9 >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var4 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype9] == idtype10; +var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6263); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6576); +fatal_exit(1); } -var11 = NEW_standard__Array(&type_standard__Array__standard__Object); +var5 = NEW_standard__Array(&type_standard__Array__standard__Object); { -standard___standard__Array___standard__kernel__Object__init(var11); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var5); /* Direct call array#Array#init on */ } -var_listnode5 = var11; -var12 = NEW_nit__AListExprs(&type_nit__AListExprs); +var_listnode5 = var5; +var6 = NEW_nit__AListExprs(&type_nit__AListExprs); { -nit__parser_prod___AListExprs___init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +nit__parser_prod___AListExprs___init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprsnode4 = var12; -var_tassignnode6 = var_nodearraylist5; -/* isa nullable TAssign */ -cltype14 = type_nullable__nit__TAssign.color; -idtype15 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var13 = 1; +var_pexprsnode4 = var6; +var_passignopnode6 = var_nodearraylist2; +/* isa nullable AAssignOp */ +cltype8 = type_nullable__nit__AAssignOp.color; +idtype9 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var7 = 1; } else { -if(cltype14 >= var_tassignnode6->type->table_size) { -var13 = 0; +if(cltype8 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var7 = 0; } else { -var13 = var_tassignnode6->type->type_table[cltype14] == idtype15; +var7 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var13)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6269); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6582); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist6; +var_pexprnode7 = var_nodearraylist3; /* isa nullable AExpr */ -cltype17 = type_nullable__nit__AExpr.color; -idtype18 = type_nullable__nit__AExpr.id; +cltype11 = type_nullable__nit__AExpr.color; +idtype12 = type_nullable__nit__AExpr.id; if(var_pexprnode7 == NULL) { -var16 = 1; +var10 = 1; } else { -if(cltype17 >= var_pexprnode7->type->table_size) { -var16 = 0; +if(cltype11 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var10 = 0; } else { -var16 = var_pexprnode7->type->type_table[cltype17] == idtype18; +var10 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var16)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6271); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6584); +fatal_exit(1); } -var19 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var13 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var19; +var_pexprnode1 = var13; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var14 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var21 = nit___nit__Parser___go_to(var_p, var20); +var15 = nit___nit__Parser___go_to(var_p, var14); } { -nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction213#action for (self: ReduceAction213, Parser) */ -void nit__parser___nit__parser__ReduceAction213___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction238#action for (self: ReduceAction238, Parser) */ +void nit__parser___nit__parser__ReduceAction238___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var9 /* : Bool */; +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; +val* var_passignopnode5 /* var passignopnode5: nullable Object */; short int var10 /* : Bool */; int cltype11; int idtype12; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var13 /* : Bool */; int cltype14; int idtype15; -val* var_tassignnode5 /* var tassignnode5: 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 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var23 /* : Int */; -long var24 /* : Int */; +val* var16 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist8 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var7; +var_nodearraylist1 = var4; +var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var8 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var8; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__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 (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6297); -show_backtrace(1); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_tidnode3 = var_nodearraylist5; +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist2; /* isa nullable TId */ -cltype11 = type_nullable__nit__TId.color; -idtype12 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var10 = 1; +var6 = 1; } else { -if(cltype11 >= var_tidnode3->type->table_size) { -var10 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var6 = 0; } else { -var10 = var_tidnode3->type->type_table[cltype11] == idtype12; +var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var10)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6299); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6608); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist6; +var_pexprsnode4 = var_nodearraylist3; /* isa nullable AExprs */ -cltype14 = type_nullable__nit__AExprs.color; -idtype15 = type_nullable__nit__AExprs.id; +cltype8 = type_nullable__nit__AExprs.color; +idtype9 = type_nullable__nit__AExprs.id; if(var_pexprsnode4 == NULL) { -var13 = 1; +var7 = 1; } else { -if(cltype14 >= var_pexprsnode4->type->table_size) { -var13 = 0; +if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var7 = 0; } else { -var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; +var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var13)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6301); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6610); +fatal_exit(1); } -var_tassignnode5 = var_nodearraylist7; -/* isa nullable TAssign */ -cltype17 = type_nullable__nit__TAssign.color; -idtype18 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var16 = 1; +var_passignopnode5 = var_nodearraylist4; +/* isa nullable AAssignOp */ +cltype11 = type_nullable__nit__AAssignOp.color; +idtype12 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var10 = 1; } else { -if(cltype17 >= var_tassignnode5->type->table_size) { -var16 = 0; +if(cltype11 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var10 = 0; } else { -var16 = var_tassignnode5->type->type_table[cltype17] == idtype18; +var10 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var16)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6303); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6612); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist8; +var_pexprnode6 = var_nodearraylist5; /* isa nullable AExpr */ -cltype20 = type_nullable__nit__AExpr.color; -idtype21 = type_nullable__nit__AExpr.id; +cltype14 = type_nullable__nit__AExpr.color; +idtype15 = type_nullable__nit__AExpr.id; if(var_pexprnode6 == NULL) { -var19 = 1; +var13 = 1; } else { -if(cltype20 >= var_pexprnode6->type->table_size) { -var19 = 0; +if(cltype14 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var13 = 0; } else { -var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; +var13 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var19)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6305); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6614); +fatal_exit(1); } -var22 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var16 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var22; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var24 = nit___nit__Parser___go_to(var_p, var23); +var18 = nit___nit__Parser___go_to(var_p, var17); } { -nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction214#action for (self: ReduceAction214, Parser) */ -void nit__parser___nit__parser__ReduceAction214___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction239#action for (self: ReduceAction239, Parser) */ +void nit__parser___nit__parser__ReduceAction239___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : 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_tidnode3 /* var tidnode3: nullable Object */; +short int var5 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; +val* var6 /* : Array[Object] */; val* var_listnode5 /* var listnode5: Array[Object] */; -val* var13 /* : AListExprs */; +val* var7 /* : AListExprs */; val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var21 /* : Int */; -long var22 /* : Int */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +val* var14 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var6; +var_nodearraylist1 = var3; +var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__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; -} +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -if (unlikely(!var8)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6330); -show_backtrace(1); -} -var_tidnode3 = var_nodearraylist5; +var_pexprnode2 = var4; +var_tidnode3 = var_nodearraylist2; /* isa nullable TId */ -cltype10 = type_nullable__nit__TId.color; -idtype11 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var9 = 1; +var5 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { -var9 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var5 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var9)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6332); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6637); +fatal_exit(1); } -var12 = NEW_standard__Array(&type_standard__Array__standard__Object); +var6 = NEW_standard__Array(&type_standard__Array__standard__Object); { -standard___standard__Array___standard__kernel__Object__init(var12); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var6); /* Direct call array#Array#init on */ } -var_listnode5 = var12; -var13 = NEW_nit__AListExprs(&type_nit__AListExprs); +var_listnode5 = var6; +var7 = NEW_nit__AListExprs(&type_nit__AListExprs); { -nit__parser_prod___AListExprs___init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +nit__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprsnode4 = var13; -var_tassignnode6 = var_nodearraylist6; -/* isa nullable TAssign */ -cltype15 = type_nullable__nit__TAssign.color; -idtype16 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var14 = 1; +var_pexprsnode4 = var7; +var_passignopnode6 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype9 = type_nullable__nit__AAssignOp.color; +idtype10 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var8 = 1; } else { -if(cltype15 >= var_tassignnode6->type->table_size) { -var14 = 0; +if(cltype9 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var8 = 0; } else { -var14 = var_tassignnode6->type->type_table[cltype15] == idtype16; +var8 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var14)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6338); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6643); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist7; +var_pexprnode7 = var_nodearraylist4; /* isa nullable AExpr */ -cltype18 = type_nullable__nit__AExpr.color; -idtype19 = type_nullable__nit__AExpr.id; +cltype12 = type_nullable__nit__AExpr.color; +idtype13 = type_nullable__nit__AExpr.id; if(var_pexprnode7 == NULL) { -var17 = 1; +var11 = 1; } else { -if(cltype18 >= var_pexprnode7->type->table_size) { -var17 = 0; +if(cltype12 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var11 = 0; } else { -var17 = var_pexprnode7->type->type_table[cltype18] == idtype19; +var11 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype12] == idtype13; } } -if (unlikely(!var17)) { +if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6340); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6645); +fatal_exit(1); } -var20 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var14 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var20; +var_pexprnode1 = var14; var_node_list = var_pexprnode1; -var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var22 = nit___nit__Parser___go_to(var_p, var21); +var16 = nit___nit__Parser___go_to(var_p, var15); } { -nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction215#action for (self: ReduceAction215, Parser) */ -void nit__parser___nit__parser__ReduceAction215___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction240#action for (self: ReduceAction240, Parser) */ +void nit__parser___nit__parser__ReduceAction240___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var9 /* : nullable Object */; +val* var5 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var10 /* : 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 */; +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_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode6 /* var pexprnode6: nullable Object */; short int var14 /* : Bool */; int cltype15; int idtype16; -val* var_tassignnode5 /* var tassignnode5: 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 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var24 /* : Int */; -long var25 /* : Int */; +val* var17 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var18 /* : Int */; +long var19 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist9 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist8 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var3; +var_nodearraylist3 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var4; +var_nodearraylist2 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var8; +var_nodearraylist1 = var5; +var6 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var9 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var9; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__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 (unlikely(!var10)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6367); -show_backtrace(1); +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var6); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -var_tidnode3 = var_nodearraylist6; +var_pexprnode2 = var6; +var_tidnode3 = var_nodearraylist3; /* isa nullable TId */ -cltype12 = type_nullable__nit__TId.color; -idtype13 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var11 = 1; +var7 = 1; } else { -if(cltype12 >= var_tidnode3->type->table_size) { -var11 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var7 = 0; } else { -var11 = var_tidnode3->type->type_table[cltype12] == idtype13; +var7 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var11)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6369); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6670); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist7; +var_pexprsnode4 = var_nodearraylist4; /* isa nullable AExprs */ -cltype15 = type_nullable__nit__AExprs.color; -idtype16 = type_nullable__nit__AExprs.id; +cltype9 = type_nullable__nit__AExprs.color; +idtype10 = type_nullable__nit__AExprs.id; if(var_pexprsnode4 == NULL) { -var14 = 1; +var8 = 1; } else { -if(cltype15 >= var_pexprsnode4->type->table_size) { -var14 = 0; +if(cltype9 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) { +var8 = 0; } else { -var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16; +var8 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var14)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6371); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6672); +fatal_exit(1); } -var_tassignnode5 = var_nodearraylist8; -/* isa nullable TAssign */ -cltype18 = type_nullable__nit__TAssign.color; -idtype19 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var17 = 1; +var_passignopnode5 = var_nodearraylist5; +/* isa nullable AAssignOp */ +cltype12 = type_nullable__nit__AAssignOp.color; +idtype13 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode5 == NULL) { +var11 = 1; } else { -if(cltype18 >= var_tassignnode5->type->table_size) { -var17 = 0; +if(cltype12 >= (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->table_size) { +var11 = 0; } else { -var17 = var_tassignnode5->type->type_table[cltype18] == idtype19; +var11 = (((long)var_passignopnode5&3)?type_info[((long)var_passignopnode5&3)]:var_passignopnode5->type)->type_table[cltype12] == idtype13; } } -if (unlikely(!var17)) { +if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6373); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6674); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist9; +var_pexprnode6 = var_nodearraylist6; /* isa nullable AExpr */ -cltype21 = type_nullable__nit__AExpr.color; -idtype22 = type_nullable__nit__AExpr.id; +cltype15 = type_nullable__nit__AExpr.color; +idtype16 = type_nullable__nit__AExpr.id; if(var_pexprnode6 == NULL) { -var20 = 1; +var14 = 1; } else { -if(cltype21 >= var_pexprnode6->type->table_size) { -var20 = 0; +if(cltype15 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var14 = 0; } else { -var20 = var_pexprnode6->type->type_table[cltype21] == idtype22; +var14 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype15] == idtype16; } } -if (unlikely(!var20)) { +if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6375); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6676); +fatal_exit(1); } -var23 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var17 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var23; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var24 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var25 = nit___nit__Parser___go_to(var_p, var24); +var19 = nit___nit__Parser___go_to(var_p, var18); } { -nit___nit__Parser___push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction216#action for (self: ReduceAction216, Parser) */ -void nit__parser___nit__parser__ReduceAction216___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction241#action for (self: ReduceAction241, Parser) */ +void nit__parser___nit__parser__ReduceAction241___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var3 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var4 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var9 /* : Bool */; +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 */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; +val* var7 /* : Array[Object] */; val* var_listnode5 /* var listnode5: Array[Object] */; -val* var14 /* : AListExprs */; +val* var8 /* : AListExprs */; val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; +val* var_passignopnode6 /* var passignopnode6: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; val* var_pexprnode7 /* var pexprnode7: 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 */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : ACallReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +long var16 /* : Int */; +long var17 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist8 = var1; +var_nodearraylist4 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var2; +var_nodearraylist3 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var3; +var_nodearraylist2 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var7; +var_nodearraylist1 = var4; +var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -var8 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var8; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__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; -} +nit__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on */ } -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6401); -show_backtrace(1); -} -var_tidnode3 = var_nodearraylist6; +var_pexprnode2 = var5; +var_tidnode3 = var_nodearraylist3; /* isa nullable TId */ -cltype11 = type_nullable__nit__TId.color; -idtype12 = type_nullable__nit__TId.id; +cltype = type_nullable__nit__TId.color; +idtype = type_nullable__nit__TId.id; if(var_tidnode3 == NULL) { -var10 = 1; +var6 = 1; } else { -if(cltype11 >= var_tidnode3->type->table_size) { -var10 = 0; +if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) { +var6 = 0; } else { -var10 = var_tidnode3->type->type_table[cltype11] == idtype12; +var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype; } } -if (unlikely(!var10)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6700); +fatal_exit(1); } -var13 = NEW_standard__Array(&type_standard__Array__standard__Object); +var7 = NEW_standard__Array(&type_standard__Array__standard__Object); { -standard___standard__Array___standard__kernel__Object__init(var13); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on */ } -var_listnode5 = var13; -var14 = NEW_nit__AListExprs(&type_nit__AListExprs); +var_listnode5 = var7; +var8 = NEW_nit__AListExprs(&type_nit__AListExprs); { -nit__parser_prod___AListExprs___init_alistexprs(var14, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprsnode4 = var14; -var_tassignnode6 = var_nodearraylist7; -/* isa nullable TAssign */ -cltype16 = type_nullable__nit__TAssign.color; -idtype17 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var15 = 1; +var_pexprsnode4 = var8; +var_passignopnode6 = var_nodearraylist4; +/* isa nullable AAssignOp */ +cltype10 = type_nullable__nit__AAssignOp.color; +idtype11 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode6 == NULL) { +var9 = 1; } else { -if(cltype16 >= var_tassignnode6->type->table_size) { -var15 = 0; +if(cltype10 >= (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->table_size) { +var9 = 0; } else { -var15 = var_tassignnode6->type->type_table[cltype16] == idtype17; +var9 = (((long)var_passignopnode6&3)?type_info[((long)var_passignopnode6&3)]:var_passignopnode6->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var15)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6706); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist8; +var_pexprnode7 = var_nodearraylist5; /* isa nullable AExpr */ -cltype19 = type_nullable__nit__AExpr.color; -idtype20 = type_nullable__nit__AExpr.id; +cltype13 = type_nullable__nit__AExpr.color; +idtype14 = type_nullable__nit__AExpr.id; if(var_pexprnode7 == NULL) { -var18 = 1; +var12 = 1; } else { -if(cltype19 >= var_pexprnode7->type->table_size) { -var18 = 0; +if(cltype13 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var12 = 0; } else { -var18 = var_pexprnode7->type->type_table[cltype19] == idtype20; +var12 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var18)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6411); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6708); +fatal_exit(1); } -var21 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var15 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ } -var_pexprnode1 = var21; +var_pexprnode1 = var15; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var23 = nit___nit__Parser___go_to(var_p, var22); +var17 = nit___nit__Parser___go_to(var_p, var16); } { -nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction219#action for (self: ReduceAction219, Parser) */ -void nit__parser___nit__parser__ReduceAction219___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction244#action for (self: ReduceAction244, Parser) */ +void nit__parser___nit__parser__ReduceAction244___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var2 /* : nullable Object */; +val* var1 /* : 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 var7 /* : Bool */; +val* var_pexprnode2 /* var pexprnode2: nullable Object */; +short int var4 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +val* var_passignopnode4 /* var passignopnode4: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; +val* var_pexprnode5 /* var pexprnode5: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var18 /* : Int */; -long var19 /* : Int */; +val* var14 /* : ABraReassignExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */; +long var15 /* : Int */; +long var16 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist4 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist3 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist2 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var3; +var_pexprnode2 = var_nodearraylist1; +/* isa nullable AExpr */ +cltype = type_nullable__nit__AExpr.color; +idtype = type_nullable__nit__AExpr.id; +if(var_pexprnode2 == NULL) { +var4 = 1; +} else { +if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) { +var4 = 0; +} else { +var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); -{ -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; } +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6730); +fatal_exit(1); } -var_pexprnode2 = var5; -var_tidnode3 = var_nodearraylist1; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var7 = 1; +var_pexprsnode3 = var_nodearraylist2; +/* isa nullable AExprs */ +cltype6 = type_nullable__nit__AExprs.color; +idtype7 = type_nullable__nit__AExprs.id; +if(var_pexprsnode3 == NULL) { +var5 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype6 >= (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->table_size) { +var5 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var5 = (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->type_table[cltype6] == idtype7; } } -if (unlikely(!var7)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6434); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6732); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype9 = type_nullable__nit__AExprs.color; -idtype10 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_passignopnode4 = var_nodearraylist3; +/* isa nullable AAssignOp */ +cltype9 = type_nullable__nit__AAssignOp.color; +idtype10 = type_nullable__nit__AAssignOp.id; +if(var_passignopnode4 == NULL) { var8 = 1; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { +if(cltype9 >= (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->table_size) { var8 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var8 = (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->type_table[cltype9] == idtype10; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6734); +fatal_exit(1); } -var_tassignnode5 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype12 = type_nullable__nit__TAssign.color; -idtype13 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { +var_pexprnode5 = var_nodearraylist4; +/* isa nullable AExpr */ +cltype12 = type_nullable__nit__AExpr.color; +idtype13 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { var11 = 1; } else { -if(cltype12 >= var_tassignnode5->type->table_size) { +if(cltype12 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { var11 = 0; } else { -var11 = var_tassignnode5->type->type_table[cltype12] == idtype13; +var11 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype12] == idtype13; } } if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6736); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype15 = type_nullable__nit__AExpr.color; -idtype16 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var14 = 1; +var14 = NEW_nit__ABraReassignExpr(&type_nit__ABraReassignExpr); +{ +nit__parser_prod___ABraReassignExpr___init_abrareassignexpr(var14, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#ABraReassignExpr#init_abrareassignexpr on */ +} +var_pexprnode1 = var14; +var_node_list = var_pexprnode1; +var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var16 = nit___nit__Parser___go_to(var_p, var15); +} +{ +nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction245#action for (self: ReduceAction245, Parser) */ +void nit__parser___nit__parser__ReduceAction245___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : APlusAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tpluseqnode2 = var_nodearraylist1; +/* isa nullable TPluseq */ +cltype = type_nullable__nit__TPluseq.color; +idtype = type_nullable__nit__TPluseq.id; +if(var_tpluseqnode2 == NULL) { +var1 = 1; } else { -if(cltype15 >= var_pexprnode6->type->table_size) { -var14 = 0; +if(cltype >= (((long)var_tpluseqnode2&3)?type_info[((long)var_tpluseqnode2&3)]:var_tpluseqnode2->type)->table_size) { +var1 = 0; } else { -var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; +var1 = (((long)var_tpluseqnode2&3)?type_info[((long)var_tpluseqnode2&3)]:var_tpluseqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var14)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6440); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6754); +fatal_exit(1); } -var17 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var2 = NEW_nit__APlusAssignOp(&type_nit__APlusAssignOp); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___APlusAssignOp___init_aplusassignop(var2, var_tpluseqnode2); /* Direct call parser_prod#APlusAssignOp#init_aplusassignop on */ } -var_pexprnode1 = var17; -var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var19 = nit___nit__Parser___go_to(var_p, var18); +var4 = nit___nit__Parser___go_to(var_p, var3); } { -nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction220#action for (self: ReduceAction220, Parser) */ -void nit__parser___nit__parser__ReduceAction220___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction246#action for (self: ReduceAction246, Parser) */ +void nit__parser___nit__parser__ReduceAction246___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var4 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var6 /* : Bool */; +val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */; +short int var1 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var8 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var16 /* : Int */; -long var17 /* : Int */; +val* var2 /* : AMinusAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var1; +var_nodearraylist1 = var; +var_tminuseqnode2 = var_nodearraylist1; +/* isa nullable TMinuseq */ +cltype = type_nullable__nit__TMinuseq.color; +idtype = type_nullable__nit__TMinuseq.id; +if(var_tminuseqnode2 == NULL) { +var1 = 1; +} else { +if(cltype >= (((long)var_tminuseqnode2&3)?type_info[((long)var_tminuseqnode2&3)]:var_tminuseqnode2->type)->table_size) { +var1 = 0; +} else { +var1 = (((long)var_tminuseqnode2&3)?type_info[((long)var_tminuseqnode2&3)]:var_tminuseqnode2->type)->type_table[cltype] == idtype; +} +} +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6769); +fatal_exit(1); +} +var2 = NEW_nit__AMinusAssignOp(&type_nit__AMinusAssignOp); { -var2 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AMinusAssignOp___init_aminusassignop(var2, var_tminuseqnode2); /* Direct call parser_prod#AMinusAssignOp#init_aminusassignop on */ } -var_nodearraylist2 = var2; +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var3 = nit___nit__Parser___pop(var_p); +var4 = nit___nit__Parser___go_to(var_p, var3); } -var_nodearraylist1 = var3; -var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ -RET_LABEL5:(void)0; +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -var_pexprnode2 = var4; -var_tidnode3 = var_nodearraylist1; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var6 = 1; +/* method parser#ReduceAction247#action for (self: ReduceAction247, Parser) */ +void nit__parser___nit__parser__ReduceAction247___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tstareqnode2 /* var tstareqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : AStarAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AStarAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tstareqnode2 = var_nodearraylist1; +/* isa nullable TStareq */ +cltype = type_nullable__nit__TStareq.color; +idtype = type_nullable__nit__TStareq.id; +if(var_tstareqnode2 == NULL) { +var1 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var6 = 0; +if(cltype >= (((long)var_tstareqnode2&3)?type_info[((long)var_tstareqnode2&3)]:var_tstareqnode2->type)->table_size) { +var1 = 0; } else { -var6 = var_tidnode3->type->type_table[cltype] == idtype; +var1 = (((long)var_tstareqnode2&3)?type_info[((long)var_tstareqnode2&3)]:var_tstareqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var6)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6462); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6784); +fatal_exit(1); } -var7 = NEW_standard__Array(&type_standard__Array__standard__Object); +var2 = NEW_nit__AStarAssignOp(&type_nit__AStarAssignOp); { -standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on */ +nit__parser_prod___AStarAssignOp___init_astarassignop(var2, var_tstareqnode2); /* Direct call parser_prod#AStarAssignOp#init_astarassignop on */ } -var_listnode5 = var7; -var8 = NEW_nit__AListExprs(&type_nit__AListExprs); +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +var4 = nit___nit__Parser___go_to(var_p, var3); } -var_pexprsnode4 = var8; -var_tassignnode6 = var_nodearraylist2; -/* isa nullable TAssign */ -cltype10 = type_nullable__nit__TAssign.color; -idtype11 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_tassignnode6->type->table_size) { -var9 = 0; -} else { -var9 = var_tassignnode6->type->type_table[cltype10] == idtype11; +{ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6468); -show_backtrace(1); +/* method parser#ReduceAction248#action for (self: ReduceAction248, Parser) */ +void nit__parser___nit__parser__ReduceAction248___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tslasheqnode2 /* var tslasheqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : ASlashAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable ASlashAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); } -var_pexprnode7 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype13 = type_nullable__nit__AExpr.color; -idtype14 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var12 = 1; +var_nodearraylist1 = var; +var_tslasheqnode2 = var_nodearraylist1; +/* isa nullable TSlasheq */ +cltype = type_nullable__nit__TSlasheq.color; +idtype = type_nullable__nit__TSlasheq.id; +if(var_tslasheqnode2 == NULL) { +var1 = 1; } else { -if(cltype13 >= var_pexprnode7->type->table_size) { -var12 = 0; +if(cltype >= (((long)var_tslasheqnode2&3)?type_info[((long)var_tslasheqnode2&3)]:var_tslasheqnode2->type)->table_size) { +var1 = 0; } else { -var12 = var_pexprnode7->type->type_table[cltype13] == idtype14; +var1 = (((long)var_tslasheqnode2&3)?type_info[((long)var_tslasheqnode2&3)]:var_tslasheqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var12)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6470); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6799); +fatal_exit(1); } -var15 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var2 = NEW_nit__ASlashAssignOp(&type_nit__ASlashAssignOp); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ASlashAssignOp___init_aslashassignop(var2, var_tslasheqnode2); /* Direct call parser_prod#ASlashAssignOp#init_aslashassignop on */ } -var_pexprnode1 = var15; -var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var17 = nit___nit__Parser___go_to(var_p, var16); +var4 = nit___nit__Parser___go_to(var_p, var3); } { -nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction221#action for (self: ReduceAction221, Parser) */ -void nit__parser___nit__parser__ReduceAction221___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction249#action for (self: ReduceAction249, Parser) */ +void nit__parser___nit__parser__ReduceAction249___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : 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 var8 /* : Bool */; +val* var_tpercenteqnode2 /* var tpercenteqnode2: nullable Object */; +short int var1 /* : Bool */; int cltype; int idtype; -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 */; +val* var2 /* : APercentAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable APercentAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var; +var_tpercenteqnode2 = var_nodearraylist1; +/* isa nullable TPercenteq */ +cltype = type_nullable__nit__TPercenteq.color; +idtype = type_nullable__nit__TPercenteq.id; +if(var_tpercenteqnode2 == NULL) { +var1 = 1; +} else { +if(cltype >= (((long)var_tpercenteqnode2&3)?type_info[((long)var_tpercenteqnode2&3)]:var_tpercenteqnode2->type)->table_size) { +var1 = 0; +} else { +var1 = (((long)var_tpercenteqnode2&3)?type_info[((long)var_tpercenteqnode2&3)]:var_tpercenteqnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist4 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6814); +fatal_exit(1); +} +var2 = NEW_nit__APercentAssignOp(&type_nit__APercentAssignOp); { -var4 = nit___nit__Parser___pop(var_p); +nit__parser_prod___APercentAssignOp___init_apercentassignop(var2, var_tpercenteqnode2); /* Direct call parser_prod#APercentAssignOp#init_apercentassignop on */ } -var_nodearraylist2 = var4; +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var5 = nit___nit__Parser___pop(var_p); +var4 = nit___nit__Parser___go_to(var_p, var3); } -var_nodearraylist1 = var5; -var6 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ -RET_LABEL7:(void)0; +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -var_pexprnode2 = var6; -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var8 = 1; +/* method parser#ReduceAction250#action for (self: ReduceAction250, Parser) */ +void nit__parser___nit__parser__ReduceAction250___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tstarstareqnode2 /* var tstarstareqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : AStarstarAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AStarstarAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tstarstareqnode2 = var_nodearraylist1; +/* isa nullable TStarstareq */ +cltype = type_nullable__nit__TStarstareq.color; +idtype = type_nullable__nit__TStarstareq.id; +if(var_tstarstareqnode2 == NULL) { +var1 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tstarstareqnode2&3)?type_info[((long)var_tstarstareqnode2&3)]:var_tstarstareqnode2->type)->table_size) { +var1 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype] == idtype; +var1 = (((long)var_tstarstareqnode2&3)?type_info[((long)var_tstarstareqnode2&3)]:var_tstarstareqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6494); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6829); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype10 = type_nullable__nit__AExprs.color; -idtype11 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var9 = 1; -} else { -if(cltype10 >= var_pexprsnode4->type->table_size) { -var9 = 0; -} else { -var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; +var2 = NEW_nit__AStarstarAssignOp(&type_nit__AStarstarAssignOp); +{ +nit__parser_prod___AStarstarAssignOp___init_astarstarassignop(var2, var_tstarstareqnode2); /* Direct call parser_prod#AStarstarAssignOp#init_astarstarassignop on */ } +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = nit___nit__Parser___go_to(var_p, var3); } -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6496); -show_backtrace(1); +{ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_tassignnode5 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype13 = type_nullable__nit__TAssign.color; -idtype14 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var12 = 1; +RET_LABEL:; +} +/* method parser#ReduceAction251#action for (self: ReduceAction251, Parser) */ +void nit__parser___nit__parser__ReduceAction251___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tpipeeqnode2 /* var tpipeeqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : APipeAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable APipeAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tpipeeqnode2 = var_nodearraylist1; +/* isa nullable TPipeeq */ +cltype = type_nullable__nit__TPipeeq.color; +idtype = type_nullable__nit__TPipeeq.id; +if(var_tpipeeqnode2 == NULL) { +var1 = 1; } else { -if(cltype13 >= var_tassignnode5->type->table_size) { -var12 = 0; +if(cltype >= (((long)var_tpipeeqnode2&3)?type_info[((long)var_tpipeeqnode2&3)]:var_tpipeeqnode2->type)->table_size) { +var1 = 0; } else { -var12 = var_tassignnode5->type->type_table[cltype13] == idtype14; +var1 = (((long)var_tpipeeqnode2&3)?type_info[((long)var_tpipeeqnode2&3)]:var_tpipeeqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var12)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6498); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6844); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist5; -/* isa nullable AExpr */ -cltype16 = type_nullable__nit__AExpr.color; -idtype17 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var15 = 1; +var2 = NEW_nit__APipeAssignOp(&type_nit__APipeAssignOp); +{ +nit__parser_prod___APipeAssignOp___init_apipeassignop(var2, var_tpipeeqnode2); /* Direct call parser_prod#APipeAssignOp#init_apipeassignop on */ +} +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var4 = nit___nit__Parser___go_to(var_p, var3); +} +{ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction252#action for (self: ReduceAction252, Parser) */ +void nit__parser___nit__parser__ReduceAction252___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tcareteqnode2 /* var tcareteqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : ACaretAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable ACaretAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tcareteqnode2 = var_nodearraylist1; +/* isa nullable TCareteq */ +cltype = type_nullable__nit__TCareteq.color; +idtype = type_nullable__nit__TCareteq.id; +if(var_tcareteqnode2 == NULL) { +var1 = 1; } else { -if(cltype16 >= var_pexprnode6->type->table_size) { -var15 = 0; +if(cltype >= (((long)var_tcareteqnode2&3)?type_info[((long)var_tcareteqnode2&3)]:var_tcareteqnode2->type)->table_size) { +var1 = 0; } else { -var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; +var1 = (((long)var_tcareteqnode2&3)?type_info[((long)var_tcareteqnode2&3)]:var_tcareteqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var15)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6500); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6859); +fatal_exit(1); } -var18 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var2 = NEW_nit__ACaretAssignOp(&type_nit__ACaretAssignOp); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ACaretAssignOp___init_acaretassignop(var2, var_tcareteqnode2); /* Direct call parser_prod#ACaretAssignOp#init_acaretassignop on */ } -var_pexprnode1 = var18; -var_node_list = var_pexprnode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var20 = nit___nit__Parser___go_to(var_p, var19); +var4 = nit___nit__Parser___go_to(var_p, var3); } { -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction222#action for (self: ReduceAction222, Parser) */ -void nit__parser___nit__parser__ReduceAction222___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction253#action for (self: ReduceAction253, Parser) */ +void nit__parser___nit__parser__ReduceAction253___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var7 /* : Bool */; +val* var_tampeqnode2 /* var tampeqnode2: nullable Object */; +short int var1 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var9 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var2 /* : AAmpAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AAmpAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); { -var1 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var; +var_tampeqnode2 = var_nodearraylist1; +/* isa nullable TAmpeq */ +cltype = type_nullable__nit__TAmpeq.color; +idtype = type_nullable__nit__TAmpeq.id; +if(var_tampeqnode2 == NULL) { +var1 = 1; +} else { +if(cltype >= (((long)var_tampeqnode2&3)?type_info[((long)var_tampeqnode2&3)]:var_tampeqnode2->type)->table_size) { +var1 = 0; +} else { +var1 = (((long)var_tampeqnode2&3)?type_info[((long)var_tampeqnode2&3)]:var_tampeqnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist3 = var2; +} +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6874); +fatal_exit(1); +} +var2 = NEW_nit__AAmpAssignOp(&type_nit__AAmpAssignOp); { -var3 = nit___nit__Parser___pop(var_p); +nit__parser_prod___AAmpAssignOp___init_aampassignop(var2, var_tampeqnode2); /* Direct call parser_prod#AAmpAssignOp#init_aampassignop on */ } -var_nodearraylist2 = var3; +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var4 = nit___nit__Parser___pop(var_p); +var4 = nit___nit__Parser___go_to(var_p, var3); } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -var_pexprnode2 = var5; -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var7 = 1; +/* method parser#ReduceAction254#action for (self: ReduceAction254, Parser) */ +void nit__parser___nit__parser__ReduceAction254___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tlleqnode2 /* var tlleqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : ALlAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable ALlAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var; +var_tlleqnode2 = var_nodearraylist1; +/* isa nullable TLleq */ +cltype = type_nullable__nit__TLleq.color; +idtype = type_nullable__nit__TLleq.id; +if(var_tlleqnode2 == NULL) { +var1 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype >= (((long)var_tlleqnode2&3)?type_info[((long)var_tlleqnode2&3)]:var_tlleqnode2->type)->table_size) { +var1 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var1 = (((long)var_tlleqnode2&3)?type_info[((long)var_tlleqnode2&3)]:var_tlleqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6889); +fatal_exit(1); } -var8 = NEW_standard__Array(&type_standard__Array__standard__Object); +var2 = NEW_nit__ALlAssignOp(&type_nit__ALlAssignOp); { -standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on */ +nit__parser_prod___ALlAssignOp___init_allassignop(var2, var_tlleqnode2); /* Direct call parser_prod#ALlAssignOp#init_allassignop on */ } -var_listnode5 = var8; -var9 = NEW_nit__AListExprs(&type_nit__AListExprs); +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -nit__parser_prod___AListExprs___init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +var4 = nit___nit__Parser___go_to(var_p, var3); } -var_pexprsnode4 = var9; -var_tassignnode6 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype11 = type_nullable__nit__TAssign.color; -idtype12 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var10 = 1; -} else { -if(cltype11 >= var_tassignnode6->type->table_size) { -var10 = 0; -} else { -var10 = var_tassignnode6->type->type_table[cltype11] == idtype12; +{ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } +RET_LABEL:; } -if (unlikely(!var10)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6529); -show_backtrace(1); +/* method parser#ReduceAction255#action for (self: ReduceAction255, Parser) */ +void nit__parser___nit__parser__ReduceAction255___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tggeqnode2 /* var tggeqnode2: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +val* var2 /* : AGgAssignOp */; +val* var_passignopnode1 /* var passignopnode1: nullable AGgAssignOp */; +long var3 /* : Int */; +long var4 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); } -var_pexprnode7 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype14 = type_nullable__nit__AExpr.color; -idtype15 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var13 = 1; +var_nodearraylist1 = var; +var_tggeqnode2 = var_nodearraylist1; +/* isa nullable TGgeq */ +cltype = type_nullable__nit__TGgeq.color; +idtype = type_nullable__nit__TGgeq.id; +if(var_tggeqnode2 == NULL) { +var1 = 1; } else { -if(cltype14 >= var_pexprnode7->type->table_size) { -var13 = 0; +if(cltype >= (((long)var_tggeqnode2&3)?type_info[((long)var_tggeqnode2&3)]:var_tggeqnode2->type)->table_size) { +var1 = 0; } else { -var13 = var_pexprnode7->type->type_table[cltype14] == idtype15; +var1 = (((long)var_tggeqnode2&3)?type_info[((long)var_tggeqnode2&3)]:var_tggeqnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var13)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6531); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6904); +fatal_exit(1); } -var16 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var2 = NEW_nit__AGgAssignOp(&type_nit__AGgAssignOp); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___AGgAssignOp___init_aggassignop(var2, var_tggeqnode2); /* Direct call parser_prod#AGgAssignOp#init_aggassignop on */ } -var_pexprnode1 = var16; -var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var_passignopnode1 = var2; +var_node_list = var_passignopnode1; +var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var18 = nit___nit__Parser___go_to(var_p, var17); +var4 = nit___nit__Parser___go_to(var_p, var3); } { -nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction223#action for (self: ReduceAction223, Parser) */ -void nit__parser___nit__parser__ReduceAction223___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction256#action for (self: ReduceAction256, Parser) */ +void nit__parser___nit__parser__ReduceAction256___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var7 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var9 /* : Bool */; +val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_tassignnode5 /* var tassignnode5: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var20 /* : Int */; -long var21 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var_plabelnode4 /* var plabelnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : ADoExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */; +long var11 /* : Int */; +long var12 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var1; +var_nodearraylist2 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var2; +var_tkwdonode2 = var_nodearraylist1; +/* isa nullable TKwdo */ +cltype = type_nullable__nit__TKwdo.color; +idtype = type_nullable__nit__TKwdo.id; +if(var_tkwdonode2 == NULL) { +var3 = 1; +} else { +if(cltype >= (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->table_size) { +var3 = 0; +} else { +var3 = (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->type_table[cltype] == idtype; } -var_nodearraylist4 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6921); +fatal_exit(1); } -var_nodearraylist2 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype5 = type_nullable__nit__AExpr.color; +idtype6 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var4 = 1; +} else { +if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var4 = 0; +} else { +var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6; } -var_nodearraylist1 = var6; -var7 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); -{ -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var7) on */ -RET_LABEL8:(void)0; } +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6923); +fatal_exit(1); } -var_pexprnode2 = var7; -var_tidnode3 = var_nodearraylist3; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var9 = 1; +var_plabelnode4 = var_nodearraylist3; +/* isa nullable ALabel */ +cltype8 = type_nullable__nit__ALabel.color; +idtype9 = type_nullable__nit__ALabel.id; +if(var_plabelnode4 == NULL) { +var7 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var9 = 0; +if(cltype8 >= (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->table_size) { +var7 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype] == idtype; +var7 = (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var9)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6556); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6925); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist4; -/* isa nullable AExprs */ -cltype11 = type_nullable__nit__AExprs.color; -idtype12 = type_nullable__nit__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; +var10 = NEW_nit__ADoExpr(&type_nit__ADoExpr); +{ +nit__parser_prod___ADoExpr___init_adoexpr(var10, var_tkwdonode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod#ADoExpr#init_adoexpr on */ +} +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +{ +var12 = nit___nit__Parser___go_to(var_p, var11); } +{ +nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ +} +RET_LABEL:; +} +/* method parser#ReduceAction257#action for (self: ReduceAction257, Parser) */ +void nit__parser___nit__parser__ReduceAction257___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwdonode2 /* var tkwdonode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +val* var6 /* : ADoExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */; +long var7 /* : Int */; +long var8 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); } -if (unlikely(!var10)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6558); -show_backtrace(1); +var_nodearraylist2 = var; +{ +var1 = nit___nit__Parser___pop(var_p); } -var_tassignnode5 = var_nodearraylist5; -/* isa nullable TAssign */ -cltype14 = type_nullable__nit__TAssign.color; -idtype15 = type_nullable__nit__TAssign.id; -if(var_tassignnode5 == NULL) { -var13 = 1; +var_nodearraylist1 = var1; +var_tkwdonode2 = var_nodearraylist1; +/* isa nullable TKwdo */ +cltype = type_nullable__nit__TKwdo.color; +idtype = type_nullable__nit__TKwdo.id; +if(var_tkwdonode2 == NULL) { +var2 = 1; } else { -if(cltype14 >= var_tassignnode5->type->table_size) { -var13 = 0; +if(cltype >= (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->table_size) { +var2 = 0; } else { -var13 = var_tassignnode5->type->type_table[cltype14] == idtype15; +var2 = (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var13)) { +if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6560); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6943); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype17 = type_nullable__nit__AExpr.color; -idtype18 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var16 = 1; +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype4 = type_nullable__nit__AExpr.color; +idtype5 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var3 = 1; } else { -if(cltype17 >= var_pexprnode6->type->table_size) { -var16 = 0; +if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var3 = 0; } else { -var16 = var_pexprnode6->type->type_table[cltype17] == idtype18; +var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5; } } -if (unlikely(!var16)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6562); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6945); +fatal_exit(1); } -var19 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var6 = NEW_nit__ADoExpr(&type_nit__ADoExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___ADoExpr___init_adoexpr(var6, var_tkwdonode2, var_pexprnode3, ((val*)NULL)); /* Direct call parser_prod#ADoExpr#init_adoexpr on */ } -var_pexprnode1 = var19; +var_pexprnode1 = var6; var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var21 = nit___nit__Parser___go_to(var_p, var20); +var8 = nit___nit__Parser___go_to(var_p, var7); } { -nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction224#action for (self: ReduceAction224, Parser) */ -void nit__parser___nit__parser__ReduceAction224___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction258#action for (self: ReduceAction258, Parser) */ +void nit__parser___nit__parser__ReduceAction258___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var5 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var7 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var6 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; -val* var9 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var10 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_tassignnode6 /* var tassignnode6: nullable Object */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +val* var_tkwthennode4 /* var tkwthennode4: 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_tkwelsenode6 /* var tkwelsenode6: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -val* var17 /* : ACallAssignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */; -long var18 /* : Int */; -long var19 /* : Int */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +val* var24 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var25 /* : Int */; +long var26 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist7 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist6 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +var_nodearraylist5 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var4; +var_nodearraylist4 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var5; -var6 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist3 = var5; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ -RET_LABEL7:(void)0; +var6 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var6; +{ +var7 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var6; -var_tidnode3 = var_nodearraylist3; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_nodearraylist1 = var7; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { var8 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype] == idtype; +var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6586); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6969); +fatal_exit(1); } -var9 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var9); /* Direct call array#Array#init on */ +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var9 = 1; +} else { +if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var9 = 0; +} else { +var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11; } -var_listnode5 = var9; -var10 = NEW_nit__AListExprs(&type_nit__AListExprs); -{ -nit__parser_prod___AListExprs___init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprsnode4 = var10; -var_tassignnode6 = var_nodearraylist4; -/* isa nullable TAssign */ -cltype12 = type_nullable__nit__TAssign.color; -idtype13 = type_nullable__nit__TAssign.id; -if(var_tassignnode6 == NULL) { -var11 = 1; +if (unlikely(!var9)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6971); +fatal_exit(1); +} +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype13 = type_nullable__nit__TKwthen.color; +idtype14 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var12 = 1; } else { -if(cltype12 >= var_tassignnode6->type->table_size) { -var11 = 0; +if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { +var12 = 0; } else { -var11 = var_tassignnode6->type->type_table[cltype12] == idtype13; +var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var11)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6592); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6973); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist5; +var_pexprnode5 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype16 = type_nullable__nit__AExpr.color; +idtype17 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var15 = 1; +} else { +if(cltype16 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var15 = 0; +} else { +var15 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype16] == idtype17; +} +} +if (unlikely(!var15)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6975); +fatal_exit(1); +} +var_tkwelsenode6 = var_nodearraylist7; +/* isa nullable TKwelse */ +cltype19 = type_nullable__nit__TKwelse.color; +idtype20 = type_nullable__nit__TKwelse.id; +if(var_tkwelsenode6 == NULL) { +var18 = 1; +} else { +if(cltype19 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) { +var18 = 0; +} else { +var18 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype19] == idtype20; +} +} +if (unlikely(!var18)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6977); +fatal_exit(1); +} +var_pexprnode7 = var_nodearraylist8; /* isa nullable AExpr */ -cltype15 = type_nullable__nit__AExpr.color; -idtype16 = type_nullable__nit__AExpr.id; +cltype22 = type_nullable__nit__AExpr.color; +idtype23 = type_nullable__nit__AExpr.id; if(var_pexprnode7 == NULL) { -var14 = 1; +var21 = 1; } else { -if(cltype15 >= var_pexprnode7->type->table_size) { -var14 = 0; +if(cltype22 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var21 = 0; } else { -var14 = var_pexprnode7->type->type_table[cltype15] == idtype16; +var21 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype22] == idtype23; } } -if (unlikely(!var14)) { +if (unlikely(!var21)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6594); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6979); +fatal_exit(1); } -var17 = NEW_nit__ACallAssignExpr(&type_nit__ACallAssignExpr); +var24 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ACallAssignExpr___init_acallassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode6, var_pexprnode7); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var24, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var17; +var_pexprnode1 = var24; var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var25 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var19 = nit___nit__Parser___go_to(var_p, var18); +var26 = nit___nit__Parser___go_to(var_p, var25); } { -nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction227#action for (self: ReduceAction227, Parser) */ -void nit__parser___nit__parser__ReduceAction227___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction259#action for (self: ReduceAction259, Parser) */ +void nit__parser___nit__parser__ReduceAction259___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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 */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode3 /* var pexprsnode3: nullable Object */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -val* var_tassignnode4 /* var tassignnode4: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_tkwthennode4 /* var tkwthennode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; 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 */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist3 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var5 = 1; +var_nodearraylist2 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var5; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var5 = 0; +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { +var6 = 0; } else { -var5 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var5)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6616); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7004); +fatal_exit(1); } -var_pexprsnode3 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype7 = type_nullable__nit__AExprs.color; -idtype8 = type_nullable__nit__AExprs.id; -if(var_pexprsnode3 == NULL) { -var6 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype8 = type_nullable__nit__AExpr.color; +idtype9 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var7 = 1; } else { -if(cltype7 >= var_pexprsnode3->type->table_size) { -var6 = 0; +if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var7 = 0; } else { -var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8; +var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var6)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6618); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7006); +fatal_exit(1); } -var_tassignnode4 = var_nodearraylist3; -/* isa nullable TAssign */ -cltype10 = type_nullable__nit__TAssign.color; -idtype11 = type_nullable__nit__TAssign.id; -if(var_tassignnode4 == NULL) { -var9 = 1; +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype11 = type_nullable__nit__TKwthen.color; +idtype12 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var10 = 1; } else { -if(cltype10 >= var_tassignnode4->type->table_size) { -var9 = 0; +if(cltype11 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { +var10 = 0; } else { -var9 = var_tassignnode4->type->type_table[cltype10] == idtype11; +var10 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var9)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6620); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7008); +fatal_exit(1); } -var_pexprnode5 = var_nodearraylist4; +var_pexprnode5 = var_nodearraylist6; /* isa nullable AExpr */ -cltype13 = type_nullable__nit__AExpr.color; -idtype14 = type_nullable__nit__AExpr.id; +cltype14 = type_nullable__nit__AExpr.color; +idtype15 = type_nullable__nit__AExpr.id; if(var_pexprnode5 == NULL) { -var12 = 1; +var13 = 1; } else { -if(cltype13 >= var_pexprnode5->type->table_size) { -var12 = 0; +if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var13 = 0; } else { -var12 = var_pexprnode5->type->type_table[cltype13] == idtype14; +var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var12)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6622); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7010); +fatal_exit(1); } -var15 = NEW_nit__ABraAssignExpr(&type_nit__ABraAssignExpr); +var16 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ABraAssignExpr___init_abraassignexpr(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5); /* Direct call parser_prod#ABraAssignExpr#init_abraassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var16, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var15; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var17 = nit___nit__Parser___go_to(var_p, var16); +var18 = nit___nit__Parser___go_to(var_p, var17); } { -nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction228#action for (self: ReduceAction228, Parser) */ -void nit__parser___nit__parser__ReduceAction228___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction260#action for (self: ReduceAction260, Parser) */ +void nit__parser___nit__parser__ReduceAction260___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; val* var5 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; val* var6 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; +short int var9 /* : 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_pexprnode3 /* var pexprnode3: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var_tkwthennode4 /* var tkwthennode4: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; 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 */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var25 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var26 /* : Int */; +long var27 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist9 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist8 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist7 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist6 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; +var_nodearraylist5 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var5; +var_nodearraylist4 = var5; { var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var6; +var_nodearraylist3 = var6; { var7 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var8 = 1; +var_nodearraylist2 = var7; +{ +var8 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var8; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { +var9 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { +var9 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var9 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6646); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7038); +fatal_exit(1); } -var_tattridnode3 = var_nodearraylist5; -/* isa nullable TAttrid */ -cltype10 = type_nullable__nit__TAttrid.color; -idtype11 = type_nullable__nit__TAttrid.id; -if(var_tattridnode3 == NULL) { -var9 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype11 = type_nullable__nit__AExpr.color; +idtype12 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var10 = 1; } else { -if(cltype10 >= var_tattridnode3->type->table_size) { -var9 = 0; +if(cltype11 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var10 = 0; } else { -var9 = var_tattridnode3->type->type_table[cltype10] == idtype11; +var10 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var9)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6648); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7040); +fatal_exit(1); } -var_passignopnode4 = var_nodearraylist6; -/* isa nullable AAssignOp */ -cltype13 = type_nullable__nit__AAssignOp.color; -idtype14 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode4 == NULL) { -var12 = 1; +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype14 = type_nullable__nit__TKwthen.color; +idtype15 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var13 = 1; } else { -if(cltype13 >= var_passignopnode4->type->table_size) { -var12 = 0; +if(cltype14 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { +var13 = 0; } else { -var12 = var_passignopnode4->type->type_table[cltype13] == idtype14; +var13 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var12)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6650); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7042); +fatal_exit(1); } var_pexprnode5 = var_nodearraylist7; /* isa nullable AExpr */ -cltype16 = type_nullable__nit__AExpr.color; -idtype17 = type_nullable__nit__AExpr.id; +cltype17 = type_nullable__nit__AExpr.color; +idtype18 = type_nullable__nit__AExpr.id; if(var_pexprnode5 == NULL) { -var15 = 1; +var16 = 1; } else { -if(cltype16 >= var_pexprnode5->type->table_size) { -var15 = 0; +if(cltype17 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var16 = 0; } else { -var15 = var_pexprnode5->type->type_table[cltype16] == idtype17; +var16 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype17] == idtype18; } } -if (unlikely(!var15)) { +if (unlikely(!var16)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7044); +fatal_exit(1); +} +var_tkwelsenode6 = var_nodearraylist8; +/* isa nullable TKwelse */ +cltype20 = type_nullable__nit__TKwelse.color; +idtype21 = type_nullable__nit__TKwelse.id; +if(var_tkwelsenode6 == NULL) { +var19 = 1; +} else { +if(cltype20 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) { +var19 = 0; +} else { +var19 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype20] == idtype21; +} +} +if (unlikely(!var19)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7046); +fatal_exit(1); +} +var_pexprnode7 = var_nodearraylist9; +/* isa nullable AExpr */ +cltype23 = type_nullable__nit__AExpr.color; +idtype24 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var22 = 1; +} else { +if(cltype23 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var22 = 0; +} else { +var22 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6652); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7048); +fatal_exit(1); } -var18 = NEW_nit__AAttrReassignExpr(&type_nit__AAttrReassignExpr); +var25 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___AAttrReassignExpr___init_aattrreassignexpr(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var25, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var18; +var_pexprnode1 = var25; var_node_list = var_pexprnode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var26 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var20 = nit___nit__Parser___go_to(var_p, var19); +var27 = nit___nit__Parser___go_to(var_p, var26); } { -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var27, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction229#action for (self: ReduceAction229, Parser) */ -void nit__parser___nit__parser__ReduceAction229___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction261#action for (self: ReduceAction261, Parser) */ +void nit__parser___nit__parser__ReduceAction261___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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 */; +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; -val* var_pexprnode5 /* var pexprnode5: nullable Object */; +val* var_tkwthennode4 /* var tkwthennode4: 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 */; +val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var21 /* : Int */; +long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist3 = var4; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +var5 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var5; -var_tattridnode3 = var_nodearraylist2; -/* isa nullable TAttrid */ -cltype = type_nullable__nit__TAttrid.color; -idtype = type_nullable__nit__TAttrid.id; -if(var_tattridnode3 == NULL) { +var_nodearraylist1 = var6; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { var7 = 1; } else { -if(cltype >= var_tattridnode3->type->table_size) { +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { var7 = 0; } else { -var7 = var_tattridnode3->type->type_table[cltype] == idtype; +var7 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6674); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7074); +fatal_exit(1); } -var_passignopnode4 = var_nodearraylist3; -/* isa nullable AAssignOp */ -cltype9 = type_nullable__nit__AAssignOp.color; -idtype10 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode4 == NULL) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable__nit__AExpr.color; +idtype10 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_passignopnode4->type->table_size) { +if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { var8 = 0; } else { -var8 = var_passignopnode4->type->type_table[cltype9] == idtype10; +var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6676); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7076); +fatal_exit(1); } -var_pexprnode5 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype12 = type_nullable__nit__AExpr.color; -idtype13 = type_nullable__nit__AExpr.id; -if(var_pexprnode5 == NULL) { +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype12 = type_nullable__nit__TKwthen.color; +idtype13 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { var11 = 1; } else { -if(cltype12 >= var_pexprnode5->type->table_size) { +if(cltype12 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { var11 = 0; } else { -var11 = var_pexprnode5->type->type_table[cltype12] == idtype13; +var11 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype12] == idtype13; } } if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6678); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7078); +fatal_exit(1); +} +var_tkwelsenode6 = var_nodearraylist6; +/* isa nullable TKwelse */ +cltype15 = type_nullable__nit__TKwelse.color; +idtype16 = type_nullable__nit__TKwelse.id; +if(var_tkwelsenode6 == NULL) { +var14 = 1; +} else { +if(cltype15 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) { +var14 = 0; +} else { +var14 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype15] == idtype16; +} +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7080); +fatal_exit(1); +} +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype18 = type_nullable__nit__AExpr.color; +idtype19 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var17 = 1; +} else { +if(cltype18 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var17 = 0; +} else { +var17 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7082); +fatal_exit(1); } -var14 = NEW_nit__AAttrReassignExpr(&type_nit__AAttrReassignExpr); +var20 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___AAttrReassignExpr___init_aattrreassignexpr(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var20, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var14; +var_pexprnode1 = var20; var_node_list = var_pexprnode1; -var15 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var16 = nit___nit__Parser___go_to(var_p, var15); +var22 = nit___nit__Parser___go_to(var_p, var21); } { -nit___nit__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction230#action for (self: ReduceAction230, Parser) */ -void nit__parser___nit__parser__ReduceAction230___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction262#action for (self: ReduceAction262, Parser) */ +void nit__parser___nit__parser__ReduceAction262___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var1 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var2 /* : nullable Object */; @@ -8272,33 +8270,36 @@ 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_tkwthennode4 /* var tkwthennode4: nullable Object */; short int var12 /* : Bool */; int cltype13; int idtype14; -val* var_passignopnode5 /* var passignopnode5: nullable Object */; +val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */; short int var15 /* : Bool */; int cltype16; int idtype17; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: nullable Object */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var21 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; +val* var21 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; long var22 /* : Int */; long var23 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } @@ -8327,103 +8328,103 @@ var_nodearraylist2 = var6; var7 = nit___nit__Parser___pop(var_p); } var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { var8 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6702); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7109); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist4; -/* isa nullable TId */ -cltype10 = type_nullable__nit__TId.color; -idtype11 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { var9 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { +if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { var9 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11; } } if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6704); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7111); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist5; -/* isa nullable AExprs */ -cltype13 = type_nullable__nit__AExprs.color; -idtype14 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype13 = type_nullable__nit__TKwthen.color; +idtype14 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { var12 = 1; } else { -if(cltype13 >= var_pexprsnode4->type->table_size) { +if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { var12 = 0; } else { -var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14; +var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14; } } if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6706); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7113); +fatal_exit(1); } -var_passignopnode5 = var_nodearraylist6; -/* isa nullable AAssignOp */ -cltype16 = type_nullable__nit__AAssignOp.color; -idtype17 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode5 == NULL) { +var_tkwelsenode6 = var_nodearraylist7; +/* isa nullable TKwelse */ +cltype16 = type_nullable__nit__TKwelse.color; +idtype17 = type_nullable__nit__TKwelse.id; +if(var_tkwelsenode6 == NULL) { var15 = 1; } else { -if(cltype16 >= var_passignopnode5->type->table_size) { +if(cltype16 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) { var15 = 0; } else { -var15 = var_passignopnode5->type->type_table[cltype16] == idtype17; +var15 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype16] == idtype17; } } if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6708); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7115); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist7; -/* isa nullable AExpr */ +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ cltype19 = type_nullable__nit__AExpr.color; idtype20 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { +if(var_pexprnode7 == NULL) { var18 = 1; } else { -if(cltype19 >= var_pexprnode6->type->table_size) { +if(cltype19 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { var18 = 0; } else { -var18 = var_pexprnode6->type->type_table[cltype19] == idtype20; +var18 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype19] == idtype20; } } if (unlikely(!var18)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6710); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7117); +fatal_exit(1); } -var21 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var21 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var21, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { var23 = nit___nit__Parser___go_to(var_p, var22); } @@ -8432,1468 +8433,1492 @@ nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_wor } RET_LABEL:; } -/* method parser#ReduceAction231#action for (self: ReduceAction231, Parser) */ -void nit__parser___nit__parser__ReduceAction231___nit__parser_work__ReduceAction__action(val* self, val* p0) { -val* var_p /* var p: Parser */; -val* var /* : null */; -val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; -val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var2 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; -val* var3 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; -val* var4 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var5 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var6 /* : nullable Object */; -val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var7 /* : Bool */; -int cltype; -int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -val* var11 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var12 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_passignopnode6 /* var passignopnode6: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -val* var19 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; -long var20 /* : Int */; -long var21 /* : Int */; -var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist6 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist5 = var2; -{ -var3 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist4 = var3; -{ -var4 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist3 = var4; -{ -var5 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var6; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var7 = 1; -} else { -if(cltype >= var_pexprnode2->type->table_size) { -var7 = 0; -} else { -var7 = var_pexprnode2->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var7)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6734); -show_backtrace(1); -} -var_tidnode3 = var_nodearraylist4; -/* isa nullable TId */ -cltype9 = type_nullable__nit__TId.color; -idtype10 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var8 = 1; -} else { -if(cltype9 >= var_tidnode3->type->table_size) { -var8 = 0; -} else { -var8 = var_tidnode3->type->type_table[cltype9] == idtype10; -} -} -if (unlikely(!var8)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6736); -show_backtrace(1); -} -var11 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var11); /* Direct call array#Array#init on */ -} -var_listnode5 = var11; -var12 = NEW_nit__AListExprs(&type_nit__AListExprs); -{ -nit__parser_prod___AListExprs___init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ -} -var_pexprsnode4 = var12; -var_passignopnode6 = var_nodearraylist5; -/* isa nullable AAssignOp */ -cltype14 = type_nullable__nit__AAssignOp.color; -idtype15 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode6 == NULL) { -var13 = 1; -} else { -if(cltype14 >= var_passignopnode6->type->table_size) { -var13 = 0; -} else { -var13 = var_passignopnode6->type->type_table[cltype14] == idtype15; -} -} -if (unlikely(!var13)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6742); -show_backtrace(1); -} -var_pexprnode7 = var_nodearraylist6; -/* isa nullable AExpr */ -cltype17 = type_nullable__nit__AExpr.color; -idtype18 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var16 = 1; -} else { -if(cltype17 >= var_pexprnode7->type->table_size) { -var16 = 0; -} else { -var16 = var_pexprnode7->type->type_table[cltype17] == idtype18; -} -} -if (unlikely(!var16)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6744); -show_backtrace(1); -} -var19 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); -{ -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ -} -var_pexprnode1 = var19; -var_node_list = var_pexprnode1; -var20 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ -{ -var21 = nit___nit__Parser___go_to(var_p, var20); -} -{ -nit___nit__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on */ -} -RET_LABEL:; -} -/* method parser#ReduceAction232#action for (self: ReduceAction232, Parser) */ -void nit__parser___nit__parser__ReduceAction232___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction263#action for (self: ReduceAction263, Parser) */ +void nit__parser___nit__parser__ReduceAction263___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; -val* var1 /* : nullable Object */; +val* var /* : nullable Object */; val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; -val* var2 /* : nullable Object */; +val* var1 /* : 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_tkwifnode2 /* var tkwifnode2: 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_tkwthennode4 /* var tkwthennode4: 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_pexprnode7 /* var pexprnode7: nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +val* var21 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var22 /* : Int */; long var23 /* : Int */; -long var24 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist8 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist8 = var1; +var_nodearraylist7 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var2; +var_nodearraylist6 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var3; +var_nodearraylist5 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var4; +var_nodearraylist4 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var5; +var_nodearraylist3 = var5; { var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var6; +var_nodearraylist2 = var6; { var7 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var8; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var9 = 1; +var_nodearraylist1 = var7; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { +var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var9 = 0; +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { +var8 = 0; } else { -var9 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var9)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6770); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7144); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist5; -/* isa nullable TId */ -cltype11 = type_nullable__nit__TId.color; -idtype12 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var10 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype10 = type_nullable__nit__AExpr.color; +idtype11 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var9 = 1; } else { -if(cltype11 >= var_tidnode3->type->table_size) { -var10 = 0; +if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var9 = 0; } else { -var10 = var_tidnode3->type->type_table[cltype11] == idtype12; +var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11; } } -if (unlikely(!var10)) { +if (unlikely(!var9)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6772); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7146); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist6; -/* isa nullable AExprs */ -cltype14 = type_nullable__nit__AExprs.color; -idtype15 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var13 = 1; +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype13 = type_nullable__nit__TKwthen.color; +idtype14 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var12 = 1; } else { -if(cltype14 >= var_pexprsnode4->type->table_size) { -var13 = 0; +if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { +var12 = 0; } else { -var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15; +var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14; } } -if (unlikely(!var13)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6774); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7148); +fatal_exit(1); } -var_passignopnode5 = var_nodearraylist7; -/* isa nullable AAssignOp */ -cltype17 = type_nullable__nit__AAssignOp.color; -idtype18 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var16 = 1; +var_pexprnode5 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype16 = type_nullable__nit__AExpr.color; +idtype17 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var15 = 1; } else { -if(cltype17 >= var_passignopnode5->type->table_size) { -var16 = 0; +if(cltype16 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var15 = 0; } else { -var16 = var_passignopnode5->type->type_table[cltype17] == idtype18; +var15 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype16] == idtype17; } } -if (unlikely(!var16)) { +if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6776); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7150); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist8; -/* isa nullable AExpr */ -cltype20 = type_nullable__nit__AExpr.color; -idtype21 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { -var19 = 1; +var_pexprnode7 = var_nodearraylist8; +/* isa nullable AExpr */ +cltype19 = type_nullable__nit__AExpr.color; +idtype20 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { +var18 = 1; } else { -if(cltype20 >= var_pexprnode6->type->table_size) { -var19 = 0; +if(cltype19 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var18 = 0; } else { -var19 = var_pexprnode6->type->type_table[cltype20] == idtype21; +var18 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype19] == idtype20; } } -if (unlikely(!var19)) { +if (unlikely(!var18)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6778); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7152); +fatal_exit(1); } -var22 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var21 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var21, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, ((val*)NULL), var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var22; +var_pexprnode1 = var21; var_node_list = var_pexprnode1; -var23 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var24 = nit___nit__Parser___go_to(var_p, var23); +var23 = nit___nit__Parser___go_to(var_p, var22); } { -nit___nit__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction233#action for (self: ReduceAction233, Parser) */ -void nit__parser___nit__parser__ReduceAction233___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction264#action for (self: ReduceAction264, Parser) */ +void nit__parser___nit__parser__ReduceAction264___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; -val* var3 /* : nullable Object */; +val* var1 /* : 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_pexprnode2 /* var pexprnode2: nullable Object */; -short int var8 /* : Bool */; +val* var_tkwifnode2 /* var tkwifnode2: nullable Object */; +short int var6 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var12 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var13 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_passignopnode6 /* var passignopnode6: nullable Object */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_tkwthennode4 /* var tkwthennode4: nullable Object */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; -long var21 /* : Int */; -long var22 /* : Int */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var3; +var_nodearraylist3 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var4; +var_nodearraylist2 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist2 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist1 = var7; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var8 = 1; +var_nodearraylist1 = var5; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { +var6 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { +var6 = 0; } else { -var8 = var_pexprnode2->type->type_table[cltype] == idtype; +var6 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6803); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7177); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist5; -/* isa nullable TId */ -cltype10 = type_nullable__nit__TId.color; -idtype11 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var9 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype8 = type_nullable__nit__AExpr.color; +idtype9 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var7 = 1; } else { -if(cltype10 >= var_tidnode3->type->table_size) { -var9 = 0; +if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var7 = 0; } else { -var9 = var_tidnode3->type->type_table[cltype10] == idtype11; +var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var9)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6805); -show_backtrace(1); -} -var12 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var12); /* Direct call array#Array#init on */ +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7179); +fatal_exit(1); } -var_listnode5 = var12; -var13 = NEW_nit__AListExprs(&type_nit__AListExprs); -{ -nit__parser_prod___AListExprs___init_alistexprs(var13, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ -} -var_pexprsnode4 = var13; -var_passignopnode6 = var_nodearraylist6; -/* isa nullable AAssignOp */ -cltype15 = type_nullable__nit__AAssignOp.color; -idtype16 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode6 == NULL) { -var14 = 1; +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype11 = type_nullable__nit__TKwthen.color; +idtype12 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { +var10 = 1; } else { -if(cltype15 >= var_passignopnode6->type->table_size) { -var14 = 0; +if(cltype11 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { +var10 = 0; } else { -var14 = var_passignopnode6->type->type_table[cltype15] == idtype16; +var10 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var14)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6811); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7181); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist7; +var_pexprnode7 = var_nodearraylist6; /* isa nullable AExpr */ -cltype18 = type_nullable__nit__AExpr.color; -idtype19 = type_nullable__nit__AExpr.id; +cltype14 = type_nullable__nit__AExpr.color; +idtype15 = type_nullable__nit__AExpr.id; if(var_pexprnode7 == NULL) { -var17 = 1; +var13 = 1; } else { -if(cltype18 >= var_pexprnode7->type->table_size) { -var17 = 0; +if(cltype14 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { +var13 = 0; } else { -var17 = var_pexprnode7->type->type_table[cltype18] == idtype19; +var13 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var17)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6813); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7183); +fatal_exit(1); } -var20 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var16 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var16, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), ((val*)NULL), var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var20; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var22 = nit___nit__Parser___go_to(var_p, var21); +var18 = nit___nit__Parser___go_to(var_p, var17); } { -nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction234#action for (self: ReduceAction234, Parser) */ -void nit__parser___nit__parser__ReduceAction234___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction265#action for (self: ReduceAction265, Parser) */ +void nit__parser___nit__parser__ReduceAction265___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; -val* var4 /* : nullable Object */; +val* var1 /* : 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_tkwifnode2 /* var tkwifnode2: 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_tkwthennode4 /* var tkwthennode4: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode7 /* var pexprnode7: 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 /* : AIfExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */; +long var18 /* : Int */; +long var19 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist9 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist8 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist7 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var4; +var_nodearraylist3 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var5; +var_nodearraylist2 = var5; { var6 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var6; +var_tkwifnode2 = var_nodearraylist1; +/* isa nullable TKwif */ +cltype = type_nullable__nit__TKwif.color; +idtype = type_nullable__nit__TKwif.id; +if(var_tkwifnode2 == NULL) { +var7 = 1; +} else { +if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist3 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var8; -{ -var9 = nit___nit__Parser___pop(var_p); +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7209); +fatal_exit(1); } -var_nodearraylist1 = var9; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var10 = 1; +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable__nit__AExpr.color; +idtype10 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var8 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var10 = 0; +if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var8 = 0; } else { -var10 = var_pexprnode2->type->type_table[cltype] == idtype; +var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10; } } -if (unlikely(!var10)) { +if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6840); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7211); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist6; -/* isa nullable TId */ -cltype12 = type_nullable__nit__TId.color; -idtype13 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_tkwthennode4 = var_nodearraylist5; +/* isa nullable TKwthen */ +cltype12 = type_nullable__nit__TKwthen.color; +idtype13 = type_nullable__nit__TKwthen.id; +if(var_tkwthennode4 == NULL) { var11 = 1; } else { -if(cltype12 >= var_tidnode3->type->table_size) { +if(cltype12 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) { var11 = 0; } else { -var11 = var_tidnode3->type->type_table[cltype12] == idtype13; +var11 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype12] == idtype13; } } if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6842); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7213); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist7; -/* isa nullable AExprs */ -cltype15 = type_nullable__nit__AExprs.color; -idtype16 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_pexprnode7 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype15 = type_nullable__nit__AExpr.color; +idtype16 = type_nullable__nit__AExpr.id; +if(var_pexprnode7 == NULL) { var14 = 1; } else { -if(cltype15 >= var_pexprsnode4->type->table_size) { +if(cltype15 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) { var14 = 0; } else { -var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16; +var14 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype15] == idtype16; } } if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6844); -show_backtrace(1); -} -var_passignopnode5 = var_nodearraylist8; -/* isa nullable AAssignOp */ -cltype18 = type_nullable__nit__AAssignOp.color; -idtype19 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var17 = 1; -} else { -if(cltype18 >= var_passignopnode5->type->table_size) { -var17 = 0; -} else { -var17 = var_passignopnode5->type->type_table[cltype18] == idtype19; -} -} -if (unlikely(!var17)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6846); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7215); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist9; -/* isa nullable AExpr */ -cltype21 = type_nullable__nit__AExpr.color; -idtype22 = type_nullable__nit__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; -} -} -if (unlikely(!var20)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6848); -show_backtrace(1); -} -var23 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var17 = NEW_nit__AIfExpr(&type_nit__AIfExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AIfExpr___init_aifexpr(var17, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), ((val*)NULL), var_pexprnode7); /* Direct call parser_prod#AIfExpr#init_aifexpr on */ } -var_pexprnode1 = var23; +var_pexprnode1 = var17; var_node_list = var_pexprnode1; -var24 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var25 = nit___nit__Parser___go_to(var_p, var24); +var19 = nit___nit__Parser___go_to(var_p, var18); } { -nit___nit__Parser___push(var_p, var25, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction235#action for (self: ReduceAction235, Parser) */ -void nit__parser___nit__parser__ReduceAction235___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction267#action for (self: ReduceAction267, Parser) */ +void nit__parser___nit__parser__ReduceAction267___nit__parser_work__ReduceAction__action(val* self, val* p0) { 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 /* : nullable Object */; val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; -val* var7 /* : nullable Object */; +val* var1 /* : nullable Object */; val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; -val* var8 /* : nullable Object */; +val* var2 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var_pexprnode2 /* var pexprnode2: nullable Object */; -short int var9 /* : Bool */; +val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var14 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_passignopnode6 /* var passignopnode6: nullable Object */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -val* var_pexprnode7 /* var pexprnode7: 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* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +val* var_plabelnode4 /* var plabelnode4: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var10 /* : ALoopExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; +long var11 /* : Int */; +long var12 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; -{ -var1 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist8 = var1; -{ -var2 = nit___nit__Parser___pop(var_p); -} -var_nodearraylist7 = var2; +var_node_list = ((val*)NULL); { -var3 = nit___nit__Parser___pop(var_p); +var = nit___nit__Parser___pop(var_p); } -var_nodearraylist6 = var3; +var_nodearraylist3 = var; { -var4 = nit___nit__Parser___pop(var_p); +var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var4; +var_nodearraylist2 = var1; { -var5 = nit___nit__Parser___pop(var_p); +var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var5; -{ -var6 = nit___nit__Parser___pop(var_p); +var_nodearraylist1 = var2; +var_tkwloopnode2 = var_nodearraylist1; +/* isa nullable TKwloop */ +cltype = type_nullable__nit__TKwloop.color; +idtype = type_nullable__nit__TKwloop.id; +if(var_tkwloopnode2 == NULL) { +var3 = 1; +} else { +if(cltype >= (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->table_size) { +var3 = 0; +} else { +var3 = (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->type_table[cltype] == idtype; } -var_nodearraylist3 = var6; -{ -var7 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var7; -{ -var8 = nit___nit__Parser___pop(var_p); +if (unlikely(!var3)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7237); +fatal_exit(1); } -var_nodearraylist1 = var8; -var_pexprnode2 = var_nodearraylist1; -/* isa nullable AExpr */ -cltype = type_nullable__nit__AExpr.color; -idtype = type_nullable__nit__AExpr.id; -if(var_pexprnode2 == NULL) { -var9 = 1; +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype5 = type_nullable__nit__AExpr.color; +idtype6 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var4 = 1; } else { -if(cltype >= var_pexprnode2->type->table_size) { -var9 = 0; +if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var4 = 0; } else { -var9 = var_pexprnode2->type->type_table[cltype] == idtype; +var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6; } } -if (unlikely(!var9)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6874); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7239); +fatal_exit(1); } -var_tidnode3 = var_nodearraylist6; -/* isa nullable TId */ -cltype11 = type_nullable__nit__TId.color; -idtype12 = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var10 = 1; +var_plabelnode4 = var_nodearraylist3; +/* isa nullable ALabel */ +cltype8 = type_nullable__nit__ALabel.color; +idtype9 = type_nullable__nit__ALabel.id; +if(var_plabelnode4 == NULL) { +var7 = 1; } else { -if(cltype11 >= var_tidnode3->type->table_size) { -var10 = 0; +if(cltype8 >= (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->table_size) { +var7 = 0; } else { -var10 = var_tidnode3->type->type_table[cltype11] == idtype12; +var7 = (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->type_table[cltype8] == idtype9; } } -if (unlikely(!var10)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6876); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7241); +fatal_exit(1); +} +var10 = NEW_nit__ALoopExpr(&type_nit__ALoopExpr); +{ +nit__parser_prod___ALoopExpr___init_aloopexpr(var10, var_tkwloopnode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on */ } -var13 = NEW_standard__Array(&type_standard__Array__standard__Object); +var_pexprnode1 = var10; +var_node_list = var_pexprnode1; +var11 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -standard___standard__Array___standard__kernel__Object__init(var13); /* Direct call array#Array#init on */ +var12 = nit___nit__Parser___go_to(var_p, var11); } -var_listnode5 = var13; -var14 = NEW_nit__AListExprs(&type_nit__AListExprs); { -nit__parser_prod___AListExprs___init_alistexprs(var14, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +nit___nit__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on */ } -var_pexprsnode4 = var14; -var_passignopnode6 = var_nodearraylist7; -/* isa nullable AAssignOp */ -cltype16 = type_nullable__nit__AAssignOp.color; -idtype17 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode6 == NULL) { -var15 = 1; +RET_LABEL:; +} +/* method parser#ReduceAction268#action for (self: ReduceAction268, Parser) */ +void nit__parser___nit__parser__ReduceAction268___nit__parser_work__ReduceAction__action(val* self, val* p0) { +val* var_p /* var p: Parser */; +val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var1 /* : nullable Object */; +val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; +val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */; +short int var2 /* : Bool */; +int cltype; +int idtype; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +val* var6 /* : ALoopExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */; +long var7 /* : Int */; +long var8 /* : Int */; +var_p = p0; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var; +{ +var1 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var1; +var_tkwloopnode2 = var_nodearraylist1; +/* isa nullable TKwloop */ +cltype = type_nullable__nit__TKwloop.color; +idtype = type_nullable__nit__TKwloop.id; +if(var_tkwloopnode2 == NULL) { +var2 = 1; } else { -if(cltype16 >= var_passignopnode6->type->table_size) { -var15 = 0; +if(cltype >= (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->table_size) { +var2 = 0; } else { -var15 = var_passignopnode6->type->type_table[cltype16] == idtype17; +var2 = (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var15)) { +if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6882); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7259); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist8; -/* isa nullable AExpr */ -cltype19 = type_nullable__nit__AExpr.color; -idtype20 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var18 = 1; +var_pexprnode3 = var_nodearraylist2; +/* isa nullable AExpr */ +cltype4 = type_nullable__nit__AExpr.color; +idtype5 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var3 = 1; } else { -if(cltype19 >= var_pexprnode7->type->table_size) { -var18 = 0; +if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var3 = 0; } else { -var18 = var_pexprnode7->type->type_table[cltype19] == idtype20; +var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5; } } -if (unlikely(!var18)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6884); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7261); +fatal_exit(1); } -var21 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var6 = NEW_nit__ALoopExpr(&type_nit__ALoopExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___ALoopExpr___init_aloopexpr(var6, var_tkwloopnode2, var_pexprnode3, ((val*)NULL)); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on */ } -var_pexprnode1 = var21; +var_pexprnode1 = var6; var_node_list = var_pexprnode1; -var22 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var23 = nit___nit__Parser___go_to(var_p, var22); +var8 = nit___nit__Parser___go_to(var_p, var7); } { -nit___nit__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction238#action for (self: ReduceAction238, Parser) */ -void nit__parser___nit__parser__ReduceAction238___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction269#action for (self: ReduceAction269, Parser) */ +void nit__parser___nit__parser__ReduceAction269___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: 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_tidnode3 /* var tidnode3: nullable Object */; +val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; short int var7 /* : Bool */; int cltype; int idtype; -val* var_pexprsnode4 /* var pexprsnode4: nullable Object */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; short int var8 /* : Bool */; int cltype9; int idtype10; -val* var_passignopnode5 /* var passignopnode5: nullable Object */; +val* var_tkwdonode4 /* var tkwdonode4: nullable Object */; short int var11 /* : Bool */; int cltype12; int idtype13; -val* var_pexprnode6 /* var pexprnode6: nullable Object */; +val* var_pexprnode5 /* var pexprnode5: 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_plabelnode6 /* var plabelnode6: nullable Object */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +val* var20 /* : AWhileExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; +long var21 /* : Int */; +long var22 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist7 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist6 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist5 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist4 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist3 = var4; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +var5 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var5; -var_tidnode3 = var_nodearraylist1; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_nodearraylist1 = var6; +var_tkwwhilenode2 = var_nodearraylist1; +/* isa nullable TKwwhile */ +cltype = type_nullable__nit__TKwwhile.color; +idtype = type_nullable__nit__TKwwhile.id; +if(var_tkwwhilenode2 == NULL) { var7 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { +if(cltype >= (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->table_size) { var7 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var7 = (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6907); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7284); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist2; -/* isa nullable AExprs */ -cltype9 = type_nullable__nit__AExprs.color; -idtype10 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype9 = type_nullable__nit__AExpr.color; +idtype10 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { var8 = 1; } else { -if(cltype9 >= var_pexprsnode4->type->table_size) { +if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { var8 = 0; } else { -var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10; +var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10; } } if (unlikely(!var8)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6909); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7286); +fatal_exit(1); } -var_passignopnode5 = var_nodearraylist3; -/* isa nullable AAssignOp */ -cltype12 = type_nullable__nit__AAssignOp.color; -idtype13 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode5 == NULL) { +var_tkwdonode4 = var_nodearraylist5; +/* isa nullable TKwdo */ +cltype12 = type_nullable__nit__TKwdo.color; +idtype13 = type_nullable__nit__TKwdo.id; +if(var_tkwdonode4 == NULL) { var11 = 1; } else { -if(cltype12 >= var_passignopnode5->type->table_size) { +if(cltype12 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) { var11 = 0; } else { -var11 = var_passignopnode5->type->type_table[cltype12] == idtype13; +var11 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype12] == idtype13; } } if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6911); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7288); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist4; -/* isa nullable AExpr */ +var_pexprnode5 = var_nodearraylist6; +/* isa nullable AExpr */ cltype15 = type_nullable__nit__AExpr.color; idtype16 = type_nullable__nit__AExpr.id; -if(var_pexprnode6 == NULL) { +if(var_pexprnode5 == NULL) { var14 = 1; } else { -if(cltype15 >= var_pexprnode6->type->table_size) { +if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { var14 = 0; } else { -var14 = var_pexprnode6->type->type_table[cltype15] == idtype16; +var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16; } } if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6913); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7290); +fatal_exit(1); } -var17 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var_plabelnode6 = var_nodearraylist7; +/* isa nullable ALabel */ +cltype18 = type_nullable__nit__ALabel.color; +idtype19 = type_nullable__nit__ALabel.id; +if(var_plabelnode6 == NULL) { +var17 = 1; +} else { +if(cltype18 >= (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->table_size) { +var17 = 0; +} else { +var17 = (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->type_table[cltype18] == idtype19; +} +} +if (unlikely(!var17)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7292); +fatal_exit(1); +} +var20 = NEW_nit__AWhileExpr(&type_nit__AWhileExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AWhileExpr___init_awhileexpr(var20, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on */ } -var_pexprnode1 = var17; +var_pexprnode1 = var20; var_node_list = var_pexprnode1; -var18 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var21 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var19 = nit___nit__Parser___go_to(var_p, var18); +var22 = nit___nit__Parser___go_to(var_p, var21); } { -nit___nit__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction239#action for (self: ReduceAction239, Parser) */ -void nit__parser___nit__parser__ReduceAction239___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction270#action for (self: ReduceAction270, Parser) */ +void nit__parser___nit__parser__ReduceAction270___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: 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* var4 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; +val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */; short int var6 /* : Bool */; int cltype; int idtype; -val* var7 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var8 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_passignopnode6 /* var passignopnode6: nullable Object */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -val* var15 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; -long var16 /* : Int */; +val* var_pexprnode3 /* var pexprnode3: nullable Object */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +val* var_tkwdonode4 /* var tkwdonode4: 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 /* : AWhileExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */; long var17 /* : Int */; +long var18 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist6 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var1; +var_nodearraylist5 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var2; +var_nodearraylist4 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var3; -var4 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist3 = var3; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on */ -RET_LABEL5:(void)0; +var4 = nit___nit__Parser___pop(var_p); } +var_nodearraylist2 = var4; +{ +var5 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var4; -var_tidnode3 = var_nodearraylist1; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { +var_nodearraylist1 = var5; +var_tkwwhilenode2 = var_nodearraylist1; +/* isa nullable TKwwhile */ +cltype = type_nullable__nit__TKwwhile.color; +idtype = type_nullable__nit__TKwwhile.id; +if(var_tkwwhilenode2 == NULL) { var6 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { +if(cltype >= (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->table_size) { var6 = 0; } else { -var6 = var_tidnode3->type->type_table[cltype] == idtype; +var6 = (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->type_table[cltype] == idtype; } } if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6935); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7316); +fatal_exit(1); } -var7 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var7); /* Direct call array#Array#init on */ +var_pexprnode3 = var_nodearraylist3; +/* isa nullable AExpr */ +cltype8 = type_nullable__nit__AExpr.color; +idtype9 = type_nullable__nit__AExpr.id; +if(var_pexprnode3 == NULL) { +var7 = 1; +} else { +if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) { +var7 = 0; +} else { +var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9; } -var_listnode5 = var7; -var8 = NEW_nit__AListExprs(&type_nit__AListExprs); -{ -nit__parser_prod___AListExprs___init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ } -var_pexprsnode4 = var8; -var_passignopnode6 = var_nodearraylist2; -/* isa nullable AAssignOp */ -cltype10 = type_nullable__nit__AAssignOp.color; -idtype11 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode6 == NULL) { -var9 = 1; +if (unlikely(!var7)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7318); +fatal_exit(1); +} +var_tkwdonode4 = var_nodearraylist5; +/* isa nullable TKwdo */ +cltype11 = type_nullable__nit__TKwdo.color; +idtype12 = type_nullable__nit__TKwdo.id; +if(var_tkwdonode4 == NULL) { +var10 = 1; } else { -if(cltype10 >= var_passignopnode6->type->table_size) { -var9 = 0; +if(cltype11 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) { +var10 = 0; } else { -var9 = var_passignopnode6->type->type_table[cltype10] == idtype11; +var10 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype11] == idtype12; } } -if (unlikely(!var9)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6941); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7320); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist3; -/* isa nullable AExpr */ -cltype13 = type_nullable__nit__AExpr.color; -idtype14 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var12 = 1; +var_pexprnode5 = var_nodearraylist6; +/* isa nullable AExpr */ +cltype14 = type_nullable__nit__AExpr.color; +idtype15 = type_nullable__nit__AExpr.id; +if(var_pexprnode5 == NULL) { +var13 = 1; } else { -if(cltype13 >= var_pexprnode7->type->table_size) { -var12 = 0; +if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) { +var13 = 0; } else { -var12 = var_pexprnode7->type->type_table[cltype13] == idtype14; +var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var12)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6943); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7322); +fatal_exit(1); } -var15 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var16 = NEW_nit__AWhileExpr(&type_nit__AWhileExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AWhileExpr___init_awhileexpr(var16, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, ((val*)NULL)); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on */ } -var_pexprnode1 = var15; +var_pexprnode1 = var16; var_node_list = var_pexprnode1; -var16 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var17 = nit___nit__Parser___go_to(var_p, var16); +var18 = nit___nit__Parser___go_to(var_p, var17); } { -nit___nit__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction240#action for (self: ReduceAction240, Parser) */ -void nit__parser___nit__parser__ReduceAction240___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction271#action for (self: ReduceAction271, Parser) */ +void nit__parser___nit__parser__ReduceAction271___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist11 /* var nodearraylist11: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var4 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: 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* var6 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var8 /* : 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* 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 */; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : Array[Object] */; +val* var_tkwinnode5 /* var tkwinnode5: 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* var_tkwdonode7 /* var tkwdonode7: nullable Object */; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +val* var_pexprnode8 /* var pexprnode8: nullable Object */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +val* var_plabelnode9 /* var plabelnode9: nullable Object */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +val* var32 /* : AForExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var33 /* : Int */; +long var34 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist11 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist5 = var1; +var_nodearraylist10 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var2; +var_nodearraylist9 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var3; +var_nodearraylist8 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var4; +var_nodearraylist7 = var4; { var5 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var5; -var6 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist6 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist5 = var6; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var6) on */ -RET_LABEL7:(void)0; +var7 = nit___nit__Parser___pop(var_p); } +var_nodearraylist4 = var7; +{ +var8 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var6; -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var8 = 1; +var_nodearraylist3 = var8; +{ +var9 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var9; +{ +var10 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var10; +var11 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var11); /* Direct call array#Array#init on */ +} +var_listnode4 = var11; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable__nit__TKwfor.color; +idtype = type_nullable__nit__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var12 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var8 = 0; +if(cltype >= (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->table_size) { +var12 = 0; } else { -var8 = var_tidnode3->type->type_table[cltype] == idtype; +var12 = (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var8)) { +if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6967); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7352); +fatal_exit(1); } -var_pexprsnode4 = var_nodearraylist3; -/* isa nullable AExprs */ -cltype10 = type_nullable__nit__AExprs.color; -idtype11 = type_nullable__nit__AExprs.id; -if(var_pexprsnode4 == NULL) { -var9 = 1; +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ +cltype14 = type_standard__Array__standard__Object.color; +idtype15 = type_standard__Array__standard__Object.id; +if(var_listnode3 == NULL) { +var13 = 0; } else { -if(cltype10 >= var_pexprsnode4->type->table_size) { -var9 = 0; +if(cltype14 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) { +var13 = 0; } else { -var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11; +var13 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype14] == idtype15; } } -if (unlikely(!var9)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6969); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7354); +fatal_exit(1); } -var_passignopnode5 = var_nodearraylist4; -/* isa nullable AAssignOp */ -cltype13 = type_nullable__nit__AAssignOp.color; -idtype14 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode5 == NULL) { -var12 = 1; +{ +var16 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3); +} +var_listnode4 = var16; +var_tkwinnode5 = var_nodearraylist5; +/* isa nullable TKwin */ +cltype18 = type_nullable__nit__TKwin.color; +idtype19 = type_nullable__nit__TKwin.id; +if(var_tkwinnode5 == NULL) { +var17 = 1; } else { -if(cltype13 >= var_passignopnode5->type->table_size) { -var12 = 0; +if(cltype18 >= (((long)var_tkwinnode5&3)?type_info[((long)var_tkwinnode5&3)]:var_tkwinnode5->type)->table_size) { +var17 = 0; } else { -var12 = var_passignopnode5->type->type_table[cltype13] == idtype14; +var17 = (((long)var_tkwinnode5&3)?type_info[((long)var_tkwinnode5&3)]:var_tkwinnode5->type)->type_table[cltype18] == idtype19; } } -if (unlikely(!var12)) { +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6971); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7357); +fatal_exit(1); } -var_pexprnode6 = var_nodearraylist5; +var_pexprnode6 = var_nodearraylist7; /* isa nullable AExpr */ -cltype16 = type_nullable__nit__AExpr.color; -idtype17 = type_nullable__nit__AExpr.id; +cltype21 = type_nullable__nit__AExpr.color; +idtype22 = type_nullable__nit__AExpr.id; if(var_pexprnode6 == NULL) { -var15 = 1; +var20 = 1; } else { -if(cltype16 >= var_pexprnode6->type->table_size) { -var15 = 0; +if(cltype21 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var20 = 0; } else { -var15 = var_pexprnode6->type->type_table[cltype16] == idtype17; +var20 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype21] == idtype22; } } -if (unlikely(!var15)) { +if (unlikely(!var20)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6973); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7359); +fatal_exit(1); } -var18 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var_tkwdonode7 = var_nodearraylist9; +/* isa nullable TKwdo */ +cltype24 = type_nullable__nit__TKwdo.color; +idtype25 = type_nullable__nit__TKwdo.id; +if(var_tkwdonode7 == NULL) { +var23 = 1; +} else { +if(cltype24 >= (((long)var_tkwdonode7&3)?type_info[((long)var_tkwdonode7&3)]:var_tkwdonode7->type)->table_size) { +var23 = 0; +} else { +var23 = (((long)var_tkwdonode7&3)?type_info[((long)var_tkwdonode7&3)]:var_tkwdonode7->type)->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7361); +fatal_exit(1); +} +var_pexprnode8 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype27 = type_nullable__nit__AExpr.color; +idtype28 = type_nullable__nit__AExpr.id; +if(var_pexprnode8 == NULL) { +var26 = 1; +} else { +if(cltype27 >= (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->table_size) { +var26 = 0; +} else { +var26 = (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->type_table[cltype27] == idtype28; +} +} +if (unlikely(!var26)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7363); +fatal_exit(1); +} +var_plabelnode9 = var_nodearraylist11; +/* isa nullable ALabel */ +cltype30 = type_nullable__nit__ALabel.color; +idtype31 = type_nullable__nit__ALabel.id; +if(var_plabelnode9 == NULL) { +var29 = 1; +} else { +if(cltype30 >= (((long)var_plabelnode9&3)?type_info[((long)var_plabelnode9&3)]:var_plabelnode9->type)->table_size) { +var29 = 0; +} else { +var29 = (((long)var_plabelnode9&3)?type_info[((long)var_plabelnode9&3)]:var_plabelnode9->type)->type_table[cltype30] == idtype31; +} +} +if (unlikely(!var29)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7365); +fatal_exit(1); +} +var32 = NEW_nit__AForExpr(&type_nit__AForExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AForExpr___init_aforexpr(var32, var_tkwfornode2, var_listnode4, var_tkwinnode5, var_pexprnode6, var_tkwdonode7, var_pexprnode8, var_plabelnode9); /* Direct call parser_prod#AForExpr#init_aforexpr on */ } -var_pexprnode1 = var18; +var_pexprnode1 = var32; var_node_list = var_pexprnode1; -var19 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var33 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var20 = nit___nit__Parser___go_to(var_p, var19); +var34 = nit___nit__Parser___go_to(var_p, var33); } { -nit___nit__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var34, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; } -/* method parser#ReduceAction241#action for (self: ReduceAction241, Parser) */ -void nit__parser___nit__parser__ReduceAction241___nit__parser_work__ReduceAction__action(val* self, val* p0) { +/* method parser#ReduceAction272#action for (self: ReduceAction272, Parser) */ +void nit__parser___nit__parser__ReduceAction272___nit__parser_work__ReduceAction__action(val* self, val* p0) { val* var_p /* var p: Parser */; -val* var /* : null */; val* var_node_list /* var node_list: nullable Object */; +val* var /* : nullable Object */; +val* var_nodearraylist10 /* var nodearraylist10: nullable Object */; val* var1 /* : nullable Object */; -val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var_nodearraylist9 /* var nodearraylist9: nullable Object */; val* var2 /* : nullable Object */; -val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var_nodearraylist8 /* var nodearraylist8: nullable Object */; val* var3 /* : nullable Object */; -val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var_nodearraylist7 /* var nodearraylist7: nullable Object */; val* var4 /* : nullable Object */; +val* var_nodearraylist6 /* var nodearraylist6: nullable Object */; +val* var5 /* : nullable Object */; +val* var_nodearraylist5 /* var nodearraylist5: nullable Object */; +val* var6 /* : nullable Object */; +val* var_nodearraylist4 /* var nodearraylist4: nullable Object */; +val* var7 /* : nullable Object */; +val* var_nodearraylist3 /* var nodearraylist3: nullable Object */; +val* var8 /* : nullable Object */; +val* var_nodearraylist2 /* var nodearraylist2: nullable Object */; +val* var9 /* : nullable Object */; val* var_nodearraylist1 /* var nodearraylist1: nullable Object */; -val* var5 /* : AImplicitSelfExpr */; -val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */; -val* var_tidnode3 /* var tidnode3: nullable Object */; -short int var7 /* : Bool */; +val* var10 /* : Array[Object] */; +val* var_listnode4 /* var listnode4: Array[Object] */; +val* var_tkwfornode2 /* var tkwfornode2: nullable Object */; +short int var11 /* : Bool */; int cltype; int idtype; -val* var8 /* : Array[Object] */; -val* var_listnode5 /* var listnode5: Array[Object] */; -val* var9 /* : AListExprs */; -val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */; -val* var_passignopnode6 /* var passignopnode6: nullable Object */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var_pexprnode7 /* var pexprnode7: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : ACallReassignExpr */; -val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */; -long var17 /* : Int */; -long var18 /* : Int */; +val* var_listnode3 /* var listnode3: nullable Object */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +val* var15 /* : Array[Object] */; +val* var_tkwinnode5 /* var tkwinnode5: 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* var_tkwdonode7 /* var tkwdonode7: nullable Object */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +val* var_pexprnode8 /* var pexprnode8: nullable Object */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +val* var28 /* : AForExpr */; +val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */; +long var29 /* : Int */; +long var30 /* : Int */; var_p = p0; -var = NULL; -var_node_list = var; +var_node_list = ((val*)NULL); +{ +var = nit___nit__Parser___pop(var_p); +} +var_nodearraylist10 = var; { var1 = nit___nit__Parser___pop(var_p); } -var_nodearraylist4 = var1; +var_nodearraylist9 = var1; { var2 = nit___nit__Parser___pop(var_p); } -var_nodearraylist3 = var2; +var_nodearraylist8 = var2; { var3 = nit___nit__Parser___pop(var_p); } -var_nodearraylist2 = var3; +var_nodearraylist7 = var3; { var4 = nit___nit__Parser___pop(var_p); } -var_nodearraylist1 = var4; -var5 = NEW_nit__AImplicitSelfExpr(&type_nit__AImplicitSelfExpr); +var_nodearraylist6 = var4; { -{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on */ -RET_LABEL6:(void)0; +var5 = nit___nit__Parser___pop(var_p); } +var_nodearraylist5 = var5; +{ +var6 = nit___nit__Parser___pop(var_p); } -var_pexprnode2 = var5; -var_tidnode3 = var_nodearraylist2; -/* isa nullable TId */ -cltype = type_nullable__nit__TId.color; -idtype = type_nullable__nit__TId.id; -if(var_tidnode3 == NULL) { -var7 = 1; +var_nodearraylist4 = var6; +{ +var7 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist3 = var7; +{ +var8 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist2 = var8; +{ +var9 = nit___nit__Parser___pop(var_p); +} +var_nodearraylist1 = var9; +var10 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ +standard___standard__Array___standard__kernel__Object__init(var10); /* Direct call array#Array#init on */ +} +var_listnode4 = var10; +var_tkwfornode2 = var_nodearraylist1; +/* isa nullable TKwfor */ +cltype = type_nullable__nit__TKwfor.color; +idtype = type_nullable__nit__TKwfor.id; +if(var_tkwfornode2 == NULL) { +var11 = 1; } else { -if(cltype >= var_tidnode3->type->table_size) { -var7 = 0; +if(cltype >= (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->table_size) { +var11 = 0; } else { -var7 = var_tidnode3->type->type_table[cltype] == idtype; +var11 = (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->type_table[cltype] == idtype; } } -if (unlikely(!var7)) { +if (unlikely(!var11)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 6996); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7396); +fatal_exit(1); } -var8 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ -standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on */ +var_listnode3 = var_nodearraylist3; +/* isa Array[Object] */ +cltype13 = type_standard__Array__standard__Object.color; +idtype14 = type_standard__Array__standard__Object.id; +if(var_listnode3 == NULL) { +var12 = 0; +} else { +if(cltype13 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) { +var12 = 0; +} else { +var12 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype13] == idtype14; +} +} +if (unlikely(!var12)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7398); +fatal_exit(1); } -var_listnode5 = var8; -var9 = NEW_nit__AListExprs(&type_nit__AListExprs); { -nit__parser_prod___AListExprs___init_alistexprs(var9, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on */ +var15 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3); } -var_pexprsnode4 = var9; -var_passignopnode6 = var_nodearraylist3; -/* isa nullable AAssignOp */ -cltype11 = type_nullable__nit__AAssignOp.color; -idtype12 = type_nullable__nit__AAssignOp.id; -if(var_passignopnode6 == NULL) { -var10 = 1; +var_listnode4 = var15; +var_tkwinnode5 = var_nodearraylist5; +/* isa nullable TKwin */ +cltype17 = type_nullable__nit__TKwin.color; +idtype18 = type_nullable__nit__TKwin.id; +if(var_tkwinnode5 == NULL) { +var16 = 1; } else { -if(cltype11 >= var_passignopnode6->type->table_size) { -var10 = 0; +if(cltype17 >= (((long)var_tkwinnode5&3)?type_info[((long)var_tkwinnode5&3)]:var_tkwinnode5->type)->table_size) { +var16 = 0; } else { -var10 = var_passignopnode6->type->type_table[cltype11] == idtype12; +var16 = (((long)var_tkwinnode5&3)?type_info[((long)var_tkwinnode5&3)]:var_tkwinnode5->type)->type_table[cltype17] == idtype18; } } -if (unlikely(!var10)) { +if (unlikely(!var16)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7002); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7401); +fatal_exit(1); } -var_pexprnode7 = var_nodearraylist4; -/* isa nullable AExpr */ -cltype14 = type_nullable__nit__AExpr.color; -idtype15 = type_nullable__nit__AExpr.id; -if(var_pexprnode7 == NULL) { -var13 = 1; +var_pexprnode6 = var_nodearraylist7; +/* isa nullable AExpr */ +cltype20 = type_nullable__nit__AExpr.color; +idtype21 = type_nullable__nit__AExpr.id; +if(var_pexprnode6 == NULL) { +var19 = 1; } else { -if(cltype14 >= var_pexprnode7->type->table_size) { -var13 = 0; +if(cltype20 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) { +var19 = 0; } else { -var13 = var_pexprnode7->type->type_table[cltype14] == idtype15; +var19 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype20] == idtype21; } } -if (unlikely(!var13)) { +if (unlikely(!var19)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7004); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7403); +fatal_exit(1); } -var16 = NEW_nit__ACallReassignExpr(&type_nit__ACallReassignExpr); +var_tkwdonode7 = var_nodearraylist9; +/* isa nullable TKwdo */ +cltype23 = type_nullable__nit__TKwdo.color; +idtype24 = type_nullable__nit__TKwdo.id; +if(var_tkwdonode7 == NULL) { +var22 = 1; +} else { +if(cltype23 >= (((long)var_tkwdonode7&3)?type_info[((long)var_tkwdonode7&3)]:var_tkwdonode7->type)->table_size) { +var22 = 0; +} else { +var22 = (((long)var_tkwdonode7&3)?type_info[((long)var_tkwdonode7&3)]:var_tkwdonode7->type)->type_table[cltype23] == idtype24; +} +} +if (unlikely(!var22)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7405); +fatal_exit(1); +} +var_pexprnode8 = var_nodearraylist10; +/* isa nullable AExpr */ +cltype26 = type_nullable__nit__AExpr.color; +idtype27 = type_nullable__nit__AExpr.id; +if(var_pexprnode8 == NULL) { +var25 = 1; +} else { +if(cltype26 >= (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->table_size) { +var25 = 0; +} else { +var25 = (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->type_table[cltype26] == idtype27; +} +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 7407); +fatal_exit(1); +} +var28 = NEW_nit__AForExpr(&type_nit__AForExpr); { -nit__parser_prod___ACallReassignExpr___init_acallreassignexpr(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode6, var_pexprnode7); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on */ +nit__parser_prod___AForExpr___init_aforexpr(var28, var_tkwfornode2, var_listnode4, var_tkwinnode5, var_pexprnode6, var_tkwdonode7, var_pexprnode8, ((val*)NULL)); /* Direct call parser_prod#AForExpr#init_aforexpr on */ } -var_pexprnode1 = var16; +var_pexprnode1 = var28; var_node_list = var_pexprnode1; -var17 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ +var29 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on */ { -var18 = nit___nit__Parser___go_to(var_p, var17); +var30 = nit___nit__Parser___go_to(var_p, var29); } { -nit___nit__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on */ +nit___nit__Parser___push(var_p, var30, var_node_list); /* Direct call parser_work#Parser#push on */ } RET_LABEL:; }