+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+val* var8 /* : Array[Object] */;
+val* var_listnode6 /* var listnode6: Array[Object] */;
+val* var9 /* : AListExprs */;
+val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
+val* var10 /* : ANewExpr */;
+val* var11 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var12 /* : Int */;
+long var13 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var3;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8166);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype6 = type_nullable_parser_nodes__AType.color;
+idtype7 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype6 >= var_ptypenode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
+}
+}
+if (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8168);
+show_backtrace(1);
+}
+var8 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on <var8:Array[Object]>*/;
+}
+var_listnode6 = var8;
+var9 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var9, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var9:AListExprs>*/
+}
+var_pexprsnode5 = var9;
+var10 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+var11 = NULL;
+{
+parser_prod__ANewExpr__init_anewexpr(var10, var_tkwnewnode2, var_ptypenode3, var11, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var10:ANewExpr>*/
+}
+var_pexprnode1 = var10;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction303> */
+{
+var13 = parser_work__Parser__go_to(var_p, var12);
+}
+{
+parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction303#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction303__action(val* self, val* p0) {
+parser__ReduceAction303__action(self, p0); /* Direct call parser#ReduceAction303#action on <self:Object(ReduceAction303)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction304#action for (self: ReduceAction304, Parser) */
+void parser__ReduceAction304__action(val* self, val* p0) {
+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_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprnode3 /* var pexprnode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tattridnode4 /* var tattridnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : AIssetAttrExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
+long var15 /* : Int */;
+long var16 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var6;
+var_tkwissetnode2 = var_nodearraylist1;
+/* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
+cltype = type_nullable_parser_nodes__TKwisset.color;
+idtype = type_nullable_parser_nodes__TKwisset.id;
+if(var_tkwissetnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwissetnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwissetnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8195);
+show_backtrace(1);
+}
+var_pexprnode3 = var_nodearraylist2;
+/* <var_pexprnode3:nullable Object> isa nullable AExpr */
+cltype9 = type_nullable_parser_nodes__AExpr.color;
+idtype10 = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_pexprnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8197);
+show_backtrace(1);
+}
+var_tattridnode4 = var_nodearraylist6;
+/* <var_tattridnode4:nullable Object> isa nullable TAttrid */
+cltype12 = type_nullable_parser_nodes__TAttrid.color;
+idtype13 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tattridnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tattridnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8199);
+show_backtrace(1);
+}
+var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
+{
+parser_prod__AIssetAttrExpr__init_aissetattrexpr(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var14:AIssetAttrExpr>*/
+}
+var_pexprnode1 = var14;
+var_node_list = var_pexprnode1;
+var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction304> */
+{
+var16 = parser_work__Parser__go_to(var_p, var15);
+}
+{
+parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction304#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction304__action(val* self, val* p0) {
+parser__ReduceAction304__action(self, p0); /* Direct call parser#ReduceAction304#action on <self:Object(ReduceAction304)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction305#action for (self: ReduceAction305, Parser) */
+void parser__ReduceAction305__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var5 /* : AImplicitSelfExpr */;
+val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
+val* var_tattridnode4 /* var tattridnode4: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var10 /* : AIssetAttrExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
+long var11 /* : Int */;
+long var12 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var3;
+var_tkwissetnode2 = var_nodearraylist1;
+/* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
+cltype = type_nullable_parser_nodes__TKwisset.color;
+idtype = type_nullable_parser_nodes__TKwisset.id;
+if(var_tkwissetnode2 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwissetnode2->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8218);
+show_backtrace(1);
+}
+var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on <var5:AImplicitSelfExpr> */
+RET_LABEL6:(void)0;
+}
+}
+var_pexprnode3 = var5;
+var_tattridnode4 = var_nodearraylist3;
+/* <var_tattridnode4:nullable Object> isa nullable TAttrid */
+cltype8 = type_nullable_parser_nodes__TAttrid.color;
+idtype9 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode4 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tattridnode4->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tattridnode4->type->type_table[cltype8] == idtype9;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8221);
+show_backtrace(1);
+}
+var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
+{
+parser_prod__AIssetAttrExpr__init_aissetattrexpr(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var10:AIssetAttrExpr>*/
+}
+var_pexprnode1 = var10;
+var_node_list = var_pexprnode1;
+var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction305> */
+{
+var12 = parser_work__Parser__go_to(var_p, var11);
+}
+{
+parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction305#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction305__action(val* self, val* p0) {
+parser__ReduceAction305__action(self, p0); /* Direct call parser#ReduceAction305#action on <self:Object(ReduceAction305)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction307#action for (self: ReduceAction307, Parser) */
+void parser__ReduceAction307__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var10 /* : AAttrExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
+long var11 /* : Int */;
+long var12 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var5;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8242);
+show_backtrace(1);
+}
+var_tattridnode3 = var_nodearraylist5;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype8 = type_nullable_parser_nodes__TAttrid.color;
+idtype9 = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tattridnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tattridnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8244);
+show_backtrace(1);
+}
+var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
+{
+parser_prod__AAttrExpr__init_aattrexpr(var10, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var10:AAttrExpr>*/
+}
+var_pexprnode1 = var10;
+var_node_list = var_pexprnode1;
+var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction307> */
+{
+var12 = parser_work__Parser__go_to(var_p, var11);
+}
+{
+parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction307#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction307__action(val* self, val* p0) {
+parser__ReduceAction307__action(self, p0); /* Direct call parser#ReduceAction307#action on <self:Object(ReduceAction307)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction308#action for (self: ReduceAction308, Parser) */
+void parser__ReduceAction308__action(val* self, val* p0) {
+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_tattridnode3 /* var tattridnode3: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var6 /* : AAttrExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
+long var7 /* : Int */;
+long var8 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on <var3:AImplicitSelfExpr> */
+RET_LABEL4:(void)0;
+}
+}
+var_pexprnode2 = var3;
+var_tattridnode3 = var_nodearraylist2;
+/* <var_tattridnode3:nullable Object> isa nullable TAttrid */
+cltype = type_nullable_parser_nodes__TAttrid.color;
+idtype = type_nullable_parser_nodes__TAttrid.id;
+if(var_tattridnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tattridnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tattridnode3->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8262);
+show_backtrace(1);
+}
+var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
+{
+parser_prod__AAttrExpr__init_aattrexpr(var6, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var6:AAttrExpr>*/
+}
+var_pexprnode1 = var6;
+var_node_list = var_pexprnode1;
+var7 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction308> */
+{
+var8 = parser_work__Parser__go_to(var_p, var7);
+}
+{
+parser_work__Parser__push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction308#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction308__action(val* self, val* p0) {
+parser__ReduceAction308__action(self, p0); /* Direct call parser#ReduceAction308#action on <self:Object(ReduceAction308)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction310#action for (self: ReduceAction310, Parser) */
+void parser__ReduceAction310__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var9 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var10 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+val* var11 /* : ACallExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
+long var12 /* : Int */;
+long var13 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var4;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8281);
+show_backtrace(1);
+}
+var_tidnode3 = var_nodearraylist4;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype7 = type_nullable_parser_nodes__TId.color;
+idtype8 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_tidnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
+}
+}
+if (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8283);
+show_backtrace(1);
+}
+var9 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on <var9:Array[Object]>*/;
+}
+var_listnode5 = var9;
+var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var10:AListExprs>*/
+}
+var_pexprsnode4 = var10;
+var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
+}
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction310> */
+{
+var13 = parser_work__Parser__go_to(var_p, var12);
+}
+{
+parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction310#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction310__action(val* self, val* p0) {
+parser__ReduceAction310__action(self, p0); /* Direct call parser#ReduceAction310#action on <self:Object(ReduceAction310)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction312#action for (self: ReduceAction312, Parser) */
+void parser__ReduceAction312__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+val* var10 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var11 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+val* var12 /* : ACallExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
+long var13 /* : Int */;
+long var14 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var5;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8308);
+show_backtrace(1);
+}
+var_tidnode3 = var_nodearraylist5;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype8 = type_nullable_parser_nodes__TId.color;
+idtype9 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var7 = 1;
+} else {
+if(cltype8 >= var_tidnode3->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8310);
+show_backtrace(1);
+}
+var10 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var10->class->vft[COLOR_kernel__Object__init]))(var10) /* init on <var10:Array[Object]>*/;
+}
+var_listnode5 = var10;
+var11 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var11, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var11:AListExprs>*/
+}
+var_pexprsnode4 = var11;
+var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var12:ACallExpr>*/
+}
+var_pexprnode1 = var12;
+var_node_list = var_pexprnode1;
+var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction312> */
+{
+var14 = parser_work__Parser__go_to(var_p, var13);
+}
+{
+parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction312#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction312__action(val* self, val* p0) {
+parser__ReduceAction312__action(self, p0); /* Direct call parser#ReduceAction312#action on <self:Object(ReduceAction312)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction314#action for (self: ReduceAction314, Parser) */
+void parser__ReduceAction314__action(val* self, val* p0) {
+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* var13 /* : ACallExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
+long var14 /* : Int */;
+long var15 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var6;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8336);
+show_backtrace(1);
+}
+var_tidnode3 = var_nodearraylist6;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype9 = type_nullable_parser_nodes__TId.color;
+idtype10 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_tidnode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8338);
+show_backtrace(1);
+}
+var11 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on <var11:Array[Object]>*/;
+}
+var_listnode5 = var11;
+var12 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var12:AListExprs>*/
+}
+var_pexprsnode4 = var12;
+var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var13:ACallExpr>*/
+}
+var_pexprnode1 = var13;
+var_node_list = var_pexprnode1;
+var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction314> */
+{
+var15 = parser_work__Parser__go_to(var_p, var14);
+}
+{
+parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction314#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction314__action(val* self, val* p0) {
+parser__ReduceAction314__action(self, p0); /* Direct call parser#ReduceAction314#action on <self:Object(ReduceAction314)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction318#action for (self: ReduceAction318, Parser) */
+void parser__ReduceAction318__action(val* self, val* p0) {
+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 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var5 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var6 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+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 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var1;
+var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var2) on <var2:AImplicitSelfExpr> */
+RET_LABEL3:(void)0;
+}
+}
+var_pexprnode2 = var2;
+var_tidnode3 = var_nodearraylist1;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8360);
+show_backtrace(1);
+}
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var5->class->vft[COLOR_kernel__Object__init]))(var5) /* init on <var5:Array[Object]>*/;
+}
+var_listnode5 = var5;
+var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var6:AListExprs>*/
+}
+var_pexprsnode4 = var6;
+var7 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var7, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var7:ACallExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction318> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction318#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction318__action(val* self, val* p0) {
+parser__ReduceAction318__action(self, p0); /* Direct call parser#ReduceAction318#action on <self:Object(ReduceAction318)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction320#action for (self: ReduceAction320, Parser) */
+void parser__ReduceAction320__action(val* self, val* p0) {
+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* var6 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var7 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+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;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on <var3:AImplicitSelfExpr> */
+RET_LABEL4:(void)0;
+}
+}
+var_pexprnode2 = var3;
+var_tidnode3 = var_nodearraylist2;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8383);
+show_backtrace(1);
+}
+var6 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on <var6:Array[Object]>*/;
+}
+var_listnode5 = var6;
+var7 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
+}
+var_pexprsnode4 = var7;
+var8 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var8:ACallExpr>*/
+}
+var_pexprnode1 = var8;
+var_node_list = var_pexprnode1;
+var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction320> */
+{
+var10 = parser_work__Parser__go_to(var_p, var9);
+}
+{
+parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction320#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction320__action(val* self, val* p0) {
+parser__ReduceAction320__action(self, p0); /* Direct call parser#ReduceAction320#action on <self:Object(ReduceAction320)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction322#action for (self: ReduceAction322, Parser) */
+void parser__ReduceAction322__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var4 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tidnode3 /* var tidnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype;
+int idtype;
+val* var7 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var8 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+val* var9 /* : ACallExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
+long var10 /* : Int */;
+long var11 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var3;
+var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on <var4:AImplicitSelfExpr> */
+RET_LABEL5:(void)0;
+}
+}
+var_pexprnode2 = var4;
+var_tidnode3 = var_nodearraylist3;
+/* <var_tidnode3:nullable Object> isa nullable TId */
+cltype = type_nullable_parser_nodes__TId.color;
+idtype = type_nullable_parser_nodes__TId.id;
+if(var_tidnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype >= var_tidnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tidnode3->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8407);
+show_backtrace(1);
+}
+var7 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Array[Object]>*/;
+}
+var_listnode5 = var7;
+var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
+}
+var_pexprsnode4 = var8;
+var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
+{
+parser_prod__ACallExpr__init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var9:ACallExpr>*/
+}
+var_pexprnode1 = var9;
+var_node_list = var_pexprnode1;
+var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction322> */
+{
+var11 = parser_work__Parser__go_to(var_p, var10);
+}
+{
+parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction322#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction322__action(val* self, val* p0) {
+parser__ReduceAction322__action(self, p0); /* Direct call parser#ReduceAction322#action on <self:Object(ReduceAction322)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction326#action for (self: ReduceAction326, Parser) */
+void parser__ReduceAction326__action(val* self, val* p0) {
+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_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* var7 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var8 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+val* var9 /* : ASuperExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
+long var10 /* : Int */;
+long var11 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_pqualifiednode2 = var_nodearraylist1;
+/* <var_pqualifiednode2:nullable Object> isa nullable AQualified */
+cltype = type_nullable_parser_nodes__AQualified.color;
+idtype = type_nullable_parser_nodes__AQualified.id;
+if(var_pqualifiednode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_pqualifiednode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_pqualifiednode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8429);
+show_backtrace(1);
+}
+var_tkwsupernode3 = var_nodearraylist2;
+/* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
+cltype5 = type_nullable_parser_nodes__TKwsuper.color;
+idtype6 = type_nullable_parser_nodes__TKwsuper.id;
+if(var_tkwsupernode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_tkwsupernode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwsupernode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8431);
+show_backtrace(1);
+}
+var7 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Array[Object]>*/;
+}
+var_listnode5 = var7;
+var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
+}
+var_pexprsnode4 = var8;
+var9 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
+{
+parser_prod__ASuperExpr__init_asuperexpr(var9, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on <var9:ASuperExpr>*/
+}
+var_pexprnode1 = var9;
+var_node_list = var_pexprnode1;
+var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction326> */
+{
+var11 = parser_work__Parser__go_to(var_p, var10);
+}
+{
+parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction326#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction326__action(val* self, val* p0) {
+parser__ReduceAction326__action(self, p0); /* Direct call parser#ReduceAction326#action on <self:Object(ReduceAction326)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction328#action for (self: ReduceAction328, Parser) */
+void parser__ReduceAction328__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var6 /* : Bool */;
+int cltype7;
+int idtype8;
+val* var9 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var10 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+val* var11 /* : AInitExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
+long var12 /* : Int */;
+long var13 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var4;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var5 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var5 = 0;
+} else {
+var5 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var5)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8455);
+show_backtrace(1);
+}
+var_tkwinitnode3 = var_nodearraylist4;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype7 = type_nullable_parser_nodes__TKwinit.color;
+idtype8 = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var6 = 1;
+} else {
+if(cltype7 >= var_tkwinitnode3->type->table_size) {
+var6 = 0;
+} else {
+var6 = var_tkwinitnode3->type->type_table[cltype7] == idtype8;
+}
+}
+if (unlikely(!var6)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8457);
+show_backtrace(1);
+}
+var9 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on <var9:Array[Object]>*/;
+}
+var_listnode5 = var9;
+var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var10:AListExprs>*/
+}
+var_pexprsnode4 = var10;
+var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+{
+parser_prod__AInitExpr__init_ainitexpr(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var11:AInitExpr>*/
+}
+var_pexprnode1 = var11;
+var_node_list = var_pexprnode1;
+var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction328> */
+{
+var13 = parser_work__Parser__go_to(var_p, var12);
+}
+{
+parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction328#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction328__action(val* self, val* p0) {
+parser__ReduceAction328__action(self, p0); /* Direct call parser#ReduceAction328#action on <self:Object(ReduceAction328)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction330#action for (self: ReduceAction330, Parser) */
+void parser__ReduceAction330__action(val* self, val* p0) {
+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 /* : AImplicitSelfExpr */;
+val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
+val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype;
+int idtype;
+val* var5 /* : Array[Object] */;
+val* var_listnode5 /* var listnode5: Array[Object] */;
+val* var6 /* : AListExprs */;
+val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
+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;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var1;
+var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
+{
+{ /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var2) on <var2:AImplicitSelfExpr> */
+RET_LABEL3:(void)0;
+}
+}
+var_pexprnode2 = var2;
+var_tkwinitnode3 = var_nodearraylist1;
+/* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
+cltype = type_nullable_parser_nodes__TKwinit.color;
+idtype = type_nullable_parser_nodes__TKwinit.id;
+if(var_tkwinitnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype >= var_tkwinitnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8479);
+show_backtrace(1);
+}
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var5->class->vft[COLOR_kernel__Object__init]))(var5) /* init on <var5:Array[Object]>*/;
+}
+var_listnode5 = var5;
+var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var6:AListExprs>*/
+}
+var_pexprsnode4 = var6;
+var7 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
+{
+parser_prod__AInitExpr__init_ainitexpr(var7, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var7:AInitExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction330> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction330#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction330__action(val* self, val* p0) {
+parser__ReduceAction330__action(self, p0); /* Direct call parser#ReduceAction330#action on <self:Object(ReduceAction330)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction331#action for (self: ReduceAction331, Parser) */
+void parser__ReduceAction331__action(val* self, val* p0) {
+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_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ABraExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8501);
+show_backtrace(1);
+}
+var_pexprsnode3 = var_nodearraylist2;
+/* <var_pexprsnode3:nullable Object> isa nullable AExprs */
+cltype5 = type_nullable_parser_nodes__AExprs.color;
+idtype6 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pexprsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pexprsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8503);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
+{
+parser_prod__ABraExpr__init_abraexpr(var7, var_pexprnode2, var_pexprsnode3); /* Direct call parser_prod#ABraExpr#init_abraexpr on <var7:ABraExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction331> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction331#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction331__action(val* self, val* p0) {
+parser__ReduceAction331__action(self, p0); /* Direct call parser#ReduceAction331#action on <self:Object(ReduceAction331)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction332#action for (self: ReduceAction332, Parser) */
+void parser__ReduceAction332__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var18 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var19 /* : Int */;
+long var20 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var7;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8525);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype10 = type_nullable_parser_nodes__AType.color;
+idtype11 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_ptypenode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8527);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist6;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype13 = type_nullable_parser_nodes__TId.color;
+idtype14 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tidnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (unlikely(!var12)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8529);
+show_backtrace(1);
+}
+var_pexprsnode5 = var_nodearraylist7;
+/* <var_pexprsnode5:nullable Object> isa nullable AExprs */
+cltype16 = type_nullable_parser_nodes__AExprs.color;
+idtype17 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode5 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_pexprsnode5->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_pexprsnode5->type->type_table[cltype16] == idtype17;
+}
+}
+if (unlikely(!var15)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8531);
+show_backtrace(1);
+}
+var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var18:ANewExpr>*/
+}
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction332> */
+{
+var20 = parser_work__Parser__go_to(var_p, var19);
+}
+{
+parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction332#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction332__action(val* self, val* p0) {
+parser__ReduceAction332__action(self, p0); /* Direct call parser#ReduceAction332#action on <self:Object(ReduceAction332)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction333#action for (self: ReduceAction333, Parser) */
+void parser__ReduceAction333__action(val* self, val* p0) {
+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_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var7 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var14 /* : Array[Object] */;
+val* var_listnode6 /* var listnode6: Array[Object] */;
+val* var15 /* : AListExprs */;
+val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
+val* var16 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var17 /* : Int */;
+long var18 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var6;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var7 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var7 = 0;
+} else {
+var7 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var7)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8554);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype9 = type_nullable_parser_nodes__AType.color;
+idtype10 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var8 = 1;
+} else {
+if(cltype9 >= var_ptypenode3->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_ptypenode3->type->type_table[cltype9] == idtype10;
+}
+}
+if (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8556);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist6;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype12 = type_nullable_parser_nodes__TId.color;
+idtype13 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_tidnode4->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_tidnode4->type->type_table[cltype12] == idtype13;
+}
+}
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8558);
+show_backtrace(1);
+}
+var14 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var14->class->vft[COLOR_kernel__Object__init]))(var14) /* init on <var14:Array[Object]>*/;
+}
+var_listnode6 = var14;
+var15 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var15, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var15:AListExprs>*/
+}
+var_pexprsnode5 = var15;
+var16 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var16, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var16:ANewExpr>*/
+}
+var_pexprnode1 = var16;
+var_node_list = var_pexprnode1;
+var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction333> */
+{
+var18 = parser_work__Parser__go_to(var_p, var17);
+}
+{
+parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction333#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction333__action(val* self, val* p0) {
+parser__ReduceAction333__action(self, p0); /* Direct call parser#ReduceAction333#action on <self:Object(ReduceAction333)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction334#action for (self: ReduceAction334, Parser) */
+void parser__ReduceAction334__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var20 /* : Int */;
+long var21 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var8;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8587);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype11 = type_nullable_parser_nodes__AType.color;
+idtype12 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_ptypenode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (unlikely(!var10)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8589);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist7;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype14 = type_nullable_parser_nodes__TId.color;
+idtype15 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_tidnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (unlikely(!var13)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8591);
+show_backtrace(1);
+}
+var_pexprsnode5 = var_nodearraylist8;
+/* <var_pexprsnode5:nullable Object> isa nullable AExprs */
+cltype17 = type_nullable_parser_nodes__AExprs.color;
+idtype18 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode5 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_pexprsnode5->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_pexprsnode5->type->type_table[cltype17] == idtype18;
+}
+}
+if (unlikely(!var16)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8593);
+show_backtrace(1);
+}
+var19 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var19:ANewExpr>*/
+}
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction334> */
+{
+var21 = parser_work__Parser__go_to(var_p, var20);
+}
+{
+parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction334#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction334__action(val* self, val* p0) {
+parser__ReduceAction334__action(self, p0); /* Direct call parser#ReduceAction334#action on <self:Object(ReduceAction334)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction335#action for (self: ReduceAction335, Parser) */
+void parser__ReduceAction335__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var8 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var15 /* : Array[Object] */;
+val* var_listnode6 /* var listnode6: Array[Object] */;
+val* var16 /* : AListExprs */;
+val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
+val* var17 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var18 /* : Int */;
+long var19 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var7;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var8 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var8 = 0;
+} else {
+var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var8)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8617);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype10 = type_nullable_parser_nodes__AType.color;
+idtype11 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var9 = 1;
+} else {
+if(cltype10 >= var_ptypenode3->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
+}
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8619);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist7;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype13 = type_nullable_parser_nodes__TId.color;
+idtype14 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tidnode4->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
+}
+}
+if (unlikely(!var12)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8621);
+show_backtrace(1);
+}
+var15 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var15->class->vft[COLOR_kernel__Object__init]))(var15) /* init on <var15:Array[Object]>*/;
+}
+var_listnode6 = var15;
+var16 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var16, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var16:AListExprs>*/
+}
+var_pexprsnode5 = var16;
+var17 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var17, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var17:ANewExpr>*/
+}
+var_pexprnode1 = var17;
+var_node_list = var_pexprnode1;
+var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction335> */
+{
+var19 = parser_work__Parser__go_to(var_p, var18);
+}
+{
+parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction335#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction335__action(val* self, val* p0) {
+parser__ReduceAction335__action(self, p0); /* Direct call parser#ReduceAction335#action on <self:Object(ReduceAction335)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction336#action for (self: ReduceAction336, Parser) */
+void parser__ReduceAction336__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var10 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var11 /* : Bool */;
+int cltype12;
+int idtype13;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var20 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var21 /* : Int */;
+long var22 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist9 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var8;
+{
+var9 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var9;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var10 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var10)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8651);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype12 = type_nullable_parser_nodes__AType.color;
+idtype13 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var11 = 1;
+} else {
+if(cltype12 >= var_ptypenode3->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_ptypenode3->type->type_table[cltype12] == idtype13;
+}
+}
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8653);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist8;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype15 = type_nullable_parser_nodes__TId.color;
+idtype16 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_tidnode4->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_tidnode4->type->type_table[cltype15] == idtype16;
+}
+}
+if (unlikely(!var14)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8655);
+show_backtrace(1);
+}
+var_pexprsnode5 = var_nodearraylist9;
+/* <var_pexprsnode5:nullable Object> isa nullable AExprs */
+cltype18 = type_nullable_parser_nodes__AExprs.color;
+idtype19 = type_nullable_parser_nodes__AExprs.id;
+if(var_pexprsnode5 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_pexprsnode5->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_pexprsnode5->type->type_table[cltype18] == idtype19;
+}
+}
+if (unlikely(!var17)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8657);
+show_backtrace(1);
+}
+var20 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var20, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var20:ANewExpr>*/
+}
+var_pexprnode1 = var20;
+var_node_list = var_pexprnode1;
+var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction336> */
+{
+var22 = parser_work__Parser__go_to(var_p, var21);
+}
+{
+parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction336#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction336__action(val* self, val* p0) {
+parser__ReduceAction336__action(self, p0); /* Direct call parser#ReduceAction336#action on <self:Object(ReduceAction336)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction337#action for (self: ReduceAction337, Parser) */
+void parser__ReduceAction337__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_ptypenode3 /* var ptypenode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_tidnode4 /* var tidnode4: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var16 /* : Array[Object] */;
+val* var_listnode6 /* var listnode6: Array[Object] */;
+val* var17 /* : AListExprs */;
+val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
+val* var18 /* : ANewExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
+long var19 /* : Int */;
+long var20 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var8;
+var_tkwnewnode2 = var_nodearraylist1;
+/* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
+cltype = type_nullable_parser_nodes__TKwnew.color;
+idtype = type_nullable_parser_nodes__TKwnew.id;
+if(var_tkwnewnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_tkwnewnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8682);
+show_backtrace(1);
+}
+var_ptypenode3 = var_nodearraylist3;
+/* <var_ptypenode3:nullable Object> isa nullable AType */
+cltype11 = type_nullable_parser_nodes__AType.color;
+idtype12 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_ptypenode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (unlikely(!var10)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8684);
+show_backtrace(1);
+}
+var_tidnode4 = var_nodearraylist8;
+/* <var_tidnode4:nullable Object> isa nullable TId */
+cltype14 = type_nullable_parser_nodes__TId.color;
+idtype15 = type_nullable_parser_nodes__TId.id;
+if(var_tidnode4 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_tidnode4->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
+}
+}
+if (unlikely(!var13)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8686);
+show_backtrace(1);
+}
+var16 = NEW_array__Array(&type_array__Arraykernel__Object);
+{
+((void (*)(val*))(var16->class->vft[COLOR_kernel__Object__init]))(var16) /* init on <var16:Array[Object]>*/;
+}
+var_listnode6 = var16;
+var17 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
+{
+parser_prod__AListExprs__init_alistexprs(var17, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var17:AListExprs>*/
+}
+var_pexprsnode5 = var17;
+var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
+{
+parser_prod__ANewExpr__init_anewexpr(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var18:ANewExpr>*/
+}
+var_pexprnode1 = var18;
+var_node_list = var_pexprnode1;
+var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction337> */
+{
+var20 = parser_work__Parser__go_to(var_p, var19);
+}
+{
+parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction337#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction337__action(val* self, val* p0) {
+parser__ReduceAction337__action(self, p0); /* Direct call parser#ReduceAction337#action on <self:Object(ReduceAction337)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction340#action for (self: ReduceAction340, Parser) */
+void parser__ReduceAction340__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var11 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+val* var_toparnode4 /* var toparnode4: nullable Object */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+val* var_ptypenode5 /* var ptypenode5: nullable Object */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+val* var_tcparnode6 /* var tcparnode6: nullable Object */;
+short int var21 /* : Bool */;
+int cltype22;
+int idtype23;
+val* var24 /* : AAsCastExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
+long var25 /* : Int */;
+long var26 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist10 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist9 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var8;
+{
+var9 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var9;
+{
+var10 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var10;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var11 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8717);
+show_backtrace(1);
+}
+var_tkwasnode3 = var_nodearraylist4;
+/* <var_tkwasnode3:nullable Object> isa nullable TKwas */
+cltype13 = type_nullable_parser_nodes__TKwas.color;
+idtype14 = type_nullable_parser_nodes__TKwas.id;
+if(var_tkwasnode3 == NULL) {
+var12 = 1;
+} else {
+if(cltype13 >= var_tkwasnode3->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_tkwasnode3->type->type_table[cltype13] == idtype14;
+}
+}
+if (unlikely(!var12)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8719);
+show_backtrace(1);
+}
+var_toparnode4 = var_nodearraylist6;
+/* <var_toparnode4:nullable Object> isa nullable TOpar */
+cltype16 = type_nullable_parser_nodes__TOpar.color;
+idtype17 = type_nullable_parser_nodes__TOpar.id;
+if(var_toparnode4 == NULL) {
+var15 = 1;
+} else {
+if(cltype16 >= var_toparnode4->type->table_size) {
+var15 = 0;
+} else {
+var15 = var_toparnode4->type->type_table[cltype16] == idtype17;
+}
+}
+if (unlikely(!var15)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8721);
+show_backtrace(1);
+}
+var_ptypenode5 = var_nodearraylist8;
+/* <var_ptypenode5:nullable Object> isa nullable AType */
+cltype19 = type_nullable_parser_nodes__AType.color;
+idtype20 = type_nullable_parser_nodes__AType.id;
+if(var_ptypenode5 == NULL) {
+var18 = 1;
+} else {
+if(cltype19 >= var_ptypenode5->type->table_size) {
+var18 = 0;
+} else {
+var18 = var_ptypenode5->type->type_table[cltype19] == idtype20;
+}
+}
+if (unlikely(!var18)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8723);
+show_backtrace(1);
+}
+var_tcparnode6 = var_nodearraylist10;
+/* <var_tcparnode6:nullable Object> isa nullable TCpar */
+cltype22 = type_nullable_parser_nodes__TCpar.color;
+idtype23 = type_nullable_parser_nodes__TCpar.id;
+if(var_tcparnode6 == NULL) {
+var21 = 1;
+} else {
+if(cltype22 >= var_tcparnode6->type->table_size) {
+var21 = 0;
+} else {
+var21 = var_tcparnode6->type->type_table[cltype22] == idtype23;
+}
+}
+if (unlikely(!var21)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8725);
+show_backtrace(1);
+}
+var24 = NEW_parser_nodes__AAsCastExpr(&type_parser_nodes__AAsCastExpr);
+{
+parser_prod__AAsCastExpr__init_aascastexpr(var24, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6); /* Direct call parser_prod#AAsCastExpr#init_aascastexpr on <var24:AAsCastExpr>*/
+}
+var_pexprnode1 = var24;
+var_node_list = var_pexprnode1;
+var25 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction340> */
+{
+var26 = parser_work__Parser__go_to(var_p, var25);
+}
+{
+parser_work__Parser__push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction340#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction340__action(val* self, val* p0) {
+parser__ReduceAction340__action(self, p0); /* Direct call parser#ReduceAction340#action on <self:Object(ReduceAction340)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction341#action for (self: ReduceAction341, Parser) */
+void parser__ReduceAction341__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var9 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var10 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var11 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var12 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var13 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
+short int var14 /* : Bool */;
+int cltype15;
+int idtype16;
+val* var_toparnode4 /* var toparnode4: nullable Object */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
+short int var20 /* : Bool */;
+int cltype21;
+int idtype22;
+val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
+short int var23 /* : Bool */;
+int cltype24;
+int idtype25;
+val* var_tcparnode7 /* var tcparnode7: nullable Object */;
+short int var26 /* : Bool */;
+int cltype27;
+int idtype28;
+val* var29 /* : AAsNotnullExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
+long var30 /* : Int */;
+long var31 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist12 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist11 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist10 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist9 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var8;
+{
+var9 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var9;
+{
+var10 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var10;
+{
+var11 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var11;
+{
+var12 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var12;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var13 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var13)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8755);
+show_backtrace(1);
+}
+var_tkwasnode3 = var_nodearraylist4;
+/* <var_tkwasnode3:nullable Object> isa nullable TKwas */
+cltype15 = type_nullable_parser_nodes__TKwas.color;
+idtype16 = type_nullable_parser_nodes__TKwas.id;
+if(var_tkwasnode3 == NULL) {
+var14 = 1;
+} else {
+if(cltype15 >= var_tkwasnode3->type->table_size) {
+var14 = 0;
+} else {
+var14 = var_tkwasnode3->type->type_table[cltype15] == idtype16;
+}
+}
+if (unlikely(!var14)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8757);
+show_backtrace(1);
+}
+var_toparnode4 = var_nodearraylist6;
+/* <var_toparnode4:nullable Object> isa nullable TOpar */
+cltype18 = type_nullable_parser_nodes__TOpar.color;
+idtype19 = type_nullable_parser_nodes__TOpar.id;
+if(var_toparnode4 == NULL) {
+var17 = 1;
+} else {
+if(cltype18 >= var_toparnode4->type->table_size) {
+var17 = 0;
+} else {
+var17 = var_toparnode4->type->type_table[cltype18] == idtype19;
+}
+}
+if (unlikely(!var17)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8759);
+show_backtrace(1);
+}
+var_tkwnotnode5 = var_nodearraylist8;
+/* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
+cltype21 = type_nullable_parser_nodes__TKwnot.color;
+idtype22 = type_nullable_parser_nodes__TKwnot.id;
+if(var_tkwnotnode5 == NULL) {
+var20 = 1;
+} else {
+if(cltype21 >= var_tkwnotnode5->type->table_size) {
+var20 = 0;
+} else {
+var20 = var_tkwnotnode5->type->type_table[cltype21] == idtype22;
+}
+}
+if (unlikely(!var20)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8761);
+show_backtrace(1);
+}
+var_tkwnullnode6 = var_nodearraylist10;
+/* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
+cltype24 = type_nullable_parser_nodes__TKwnull.color;
+idtype25 = type_nullable_parser_nodes__TKwnull.id;
+if(var_tkwnullnode6 == NULL) {
+var23 = 1;
+} else {
+if(cltype24 >= var_tkwnullnode6->type->table_size) {
+var23 = 0;
+} else {
+var23 = var_tkwnullnode6->type->type_table[cltype24] == idtype25;
+}
+}
+if (unlikely(!var23)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8763);
+show_backtrace(1);
+}
+var_tcparnode7 = var_nodearraylist12;
+/* <var_tcparnode7:nullable Object> isa nullable TCpar */
+cltype27 = type_nullable_parser_nodes__TCpar.color;
+idtype28 = type_nullable_parser_nodes__TCpar.id;
+if(var_tcparnode7 == NULL) {
+var26 = 1;
+} else {
+if(cltype27 >= var_tcparnode7->type->table_size) {
+var26 = 0;
+} else {
+var26 = var_tcparnode7->type->type_table[cltype27] == idtype28;
+}
+}
+if (unlikely(!var26)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8765);
+show_backtrace(1);
+}
+var29 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
+{
+parser_prod__AAsNotnullExpr__init_aasnotnullexpr(var29, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var29:AAsNotnullExpr>*/
+}
+var_pexprnode1 = var29;
+var_node_list = var_pexprnode1;
+var30 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction341> */
+{
+var31 = parser_work__Parser__go_to(var_p, var30);
+}
+{
+parser_work__Parser__push(var_p, var31, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction341#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction341__action(val* self, val* p0) {
+parser__ReduceAction341__action(self, p0); /* Direct call parser#ReduceAction341#action on <self:Object(ReduceAction341)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction342#action for (self: ReduceAction342, Parser) */
+void parser__ReduceAction342__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
+val* var3 /* : nullable Object */;
+val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
+val* var4 /* : nullable Object */;
+val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
+val* var5 /* : nullable Object */;
+val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
+val* var6 /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var7 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var8 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
+short int var10 /* : Bool */;
+int cltype11;
+int idtype12;
+val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+val* var19 /* : AAsNotnullExpr */;
+val* var20 /* : null */;
+val* var21 /* : null */;
+val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
+long var22 /* : Int */;
+long var23 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist8 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist7 = var2;
+{
+var3 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist6 = var3;
+{
+var4 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist5 = var4;
+{
+var5 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist4 = var5;
+{
+var6 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist3 = var6;
+{
+var7 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var7;
+{
+var8 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var8;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var9 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var9 = 0;
+} else {
+var9 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8792);
+show_backtrace(1);
+}
+var_tkwasnode3 = var_nodearraylist4;
+/* <var_tkwasnode3:nullable Object> isa nullable TKwas */
+cltype11 = type_nullable_parser_nodes__TKwas.color;
+idtype12 = type_nullable_parser_nodes__TKwas.id;
+if(var_tkwasnode3 == NULL) {
+var10 = 1;
+} else {
+if(cltype11 >= var_tkwasnode3->type->table_size) {
+var10 = 0;
+} else {
+var10 = var_tkwasnode3->type->type_table[cltype11] == idtype12;
+}
+}
+if (unlikely(!var10)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8794);
+show_backtrace(1);
+}
+var_tkwnotnode5 = var_nodearraylist6;
+/* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
+cltype14 = type_nullable_parser_nodes__TKwnot.color;
+idtype15 = type_nullable_parser_nodes__TKwnot.id;
+if(var_tkwnotnode5 == NULL) {
+var13 = 1;
+} else {
+if(cltype14 >= var_tkwnotnode5->type->table_size) {
+var13 = 0;
+} else {
+var13 = var_tkwnotnode5->type->type_table[cltype14] == idtype15;
+}
+}
+if (unlikely(!var13)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8796);
+show_backtrace(1);
+}
+var_tkwnullnode6 = var_nodearraylist8;
+/* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
+cltype17 = type_nullable_parser_nodes__TKwnull.color;
+idtype18 = type_nullable_parser_nodes__TKwnull.id;
+if(var_tkwnullnode6 == NULL) {
+var16 = 1;
+} else {
+if(cltype17 >= var_tkwnullnode6->type->table_size) {
+var16 = 0;
+} else {
+var16 = var_tkwnullnode6->type->type_table[cltype17] == idtype18;
+}
+}
+if (unlikely(!var16)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8798);
+show_backtrace(1);
+}
+var19 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
+var20 = NULL;
+var21 = NULL;
+{
+parser_prod__AAsNotnullExpr__init_aasnotnullexpr(var19, var_pexprnode2, var_tkwasnode3, var20, var_tkwnotnode5, var_tkwnullnode6, var21); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var19:AAsNotnullExpr>*/
+}
+var_pexprnode1 = var19;
+var_node_list = var_pexprnode1;
+var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction342> */
+{
+var23 = parser_work__Parser__go_to(var_p, var22);
+}
+{
+parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction342#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction342__action(val* self, val* p0) {
+parser__ReduceAction342__action(self, p0); /* Direct call parser#ReduceAction342#action on <self:Object(ReduceAction342)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction343#action for (self: ReduceAction343, Parser) */
+void parser__ReduceAction343__action(val* self, val* p0) {
+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_pexprnode2 /* var pexprnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tdotdotdotnode3 /* var tdotdotdotnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AVarargExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AVarargExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_pexprnode2 = var_nodearraylist1;
+/* <var_pexprnode2:nullable Object> isa nullable AExpr */
+cltype = type_nullable_parser_nodes__AExpr.color;
+idtype = type_nullable_parser_nodes__AExpr.id;
+if(var_pexprnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_pexprnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_pexprnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8819);
+show_backtrace(1);
+}
+var_tdotdotdotnode3 = var_nodearraylist2;
+/* <var_tdotdotdotnode3:nullable Object> isa nullable TDotdotdot */
+cltype5 = type_nullable_parser_nodes__TDotdotdot.color;
+idtype6 = type_nullable_parser_nodes__TDotdotdot.id;
+if(var_tdotdotdotnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_tdotdotdotnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_tdotdotdotnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8821);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__AVarargExpr(&type_parser_nodes__AVarargExpr);
+{
+parser_prod__AVarargExpr__init_avarargexpr(var7, var_pexprnode2, var_tdotdotdotnode3); /* Direct call parser_prod#AVarargExpr#init_avarargexpr on <var7:AVarargExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction343> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction343#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction343__action(val* self, val* p0) {
+parser__ReduceAction343__action(self, p0); /* Direct call parser#ReduceAction343#action on <self:Object(ReduceAction343)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction344#action for (self: ReduceAction344, Parser) */
+void parser__ReduceAction344__action(val* self, val* p0) {
+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_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ASelfExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tkwselfnode2 = var_nodearraylist1;
+/* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
+cltype = type_nullable_parser_nodes__TKwself.color;
+idtype = type_nullable_parser_nodes__TKwself.id;
+if(var_tkwselfnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwselfnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwselfnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8838);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8840);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
+{
+parser_prod__ASelfExpr__init_aselfexpr(var7, var_tkwselfnode2, var_pannotationsnode3); /* Direct call parser_prod#ASelfExpr#init_aselfexpr on <var7:ASelfExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction344> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction344#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction344__action(val* self, val* p0) {
+parser__ReduceAction344__action(self, p0); /* Direct call parser#ReduceAction344#action on <self:Object(ReduceAction344)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction345#action for (self: ReduceAction345, Parser) */
+void parser__ReduceAction345__action(val* self, val* p0) {
+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_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ATrueExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tkwtruenode2 = var_nodearraylist1;
+/* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
+cltype = type_nullable_parser_nodes__TKwtrue.color;
+idtype = type_nullable_parser_nodes__TKwtrue.id;
+if(var_tkwtruenode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwtruenode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwtruenode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8857);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8859);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
+{
+parser_prod__ATrueExpr__init_atrueexpr(var7, var_tkwtruenode2, var_pannotationsnode3); /* Direct call parser_prod#ATrueExpr#init_atrueexpr on <var7:ATrueExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction345> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction345#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction345__action(val* self, val* p0) {
+parser__ReduceAction345__action(self, p0); /* Direct call parser#ReduceAction345#action on <self:Object(ReduceAction345)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction346#action for (self: ReduceAction346, Parser) */
+void parser__ReduceAction346__action(val* self, val* p0) {
+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_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AFalseExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tkwfalsenode2 = var_nodearraylist1;
+/* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
+cltype = type_nullable_parser_nodes__TKwfalse.color;
+idtype = type_nullable_parser_nodes__TKwfalse.id;
+if(var_tkwfalsenode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwfalsenode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8876);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8878);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
+{
+parser_prod__AFalseExpr__init_afalseexpr(var7, var_tkwfalsenode2, var_pannotationsnode3); /* Direct call parser_prod#AFalseExpr#init_afalseexpr on <var7:AFalseExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction346> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction346#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction346__action(val* self, val* p0) {
+parser__ReduceAction346__action(self, p0); /* Direct call parser#ReduceAction346#action on <self:Object(ReduceAction346)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction347#action for (self: ReduceAction347, Parser) */
+void parser__ReduceAction347__action(val* self, val* p0) {
+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_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ANullExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tkwnullnode2 = var_nodearraylist1;
+/* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
+cltype = type_nullable_parser_nodes__TKwnull.color;
+idtype = type_nullable_parser_nodes__TKwnull.id;
+if(var_tkwnullnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tkwnullnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tkwnullnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8895);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8897);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
+{
+parser_prod__ANullExpr__init_anullexpr(var7, var_tkwnullnode2, var_pannotationsnode3); /* Direct call parser_prod#ANullExpr#init_anullexpr on <var7:ANullExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction347> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction347#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction347__action(val* self, val* p0) {
+parser__ReduceAction347__action(self, p0); /* Direct call parser#ReduceAction347#action on <self:Object(ReduceAction347)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction348#action for (self: ReduceAction348, Parser) */
+void parser__ReduceAction348__action(val* self, val* p0) {
+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_tnumbernode2 /* var tnumbernode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ADecIntExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ADecIntExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tnumbernode2 = var_nodearraylist1;
+/* <var_tnumbernode2:nullable Object> isa nullable TNumber */
+cltype = type_nullable_parser_nodes__TNumber.color;
+idtype = type_nullable_parser_nodes__TNumber.id;
+if(var_tnumbernode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tnumbernode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tnumbernode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8914);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8916);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ADecIntExpr(&type_parser_nodes__ADecIntExpr);
+{
+parser_prod__ADecIntExpr__init_adecintexpr(var7, var_tnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#ADecIntExpr#init_adecintexpr on <var7:ADecIntExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction348> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction348#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction348__action(val* self, val* p0) {
+parser__ReduceAction348__action(self, p0); /* Direct call parser#ReduceAction348#action on <self:Object(ReduceAction348)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction349#action for (self: ReduceAction349, Parser) */
+void parser__ReduceAction349__action(val* self, val* p0) {
+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_thexnumbernode2 /* var thexnumbernode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AHexIntExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AHexIntExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_thexnumbernode2 = var_nodearraylist1;
+/* <var_thexnumbernode2:nullable Object> isa nullable THexNumber */
+cltype = type_nullable_parser_nodes__THexNumber.color;
+idtype = type_nullable_parser_nodes__THexNumber.id;
+if(var_thexnumbernode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_thexnumbernode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_thexnumbernode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8933);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8935);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__AHexIntExpr(&type_parser_nodes__AHexIntExpr);
+{
+parser_prod__AHexIntExpr__init_ahexintexpr(var7, var_thexnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#AHexIntExpr#init_ahexintexpr on <var7:AHexIntExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction349> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction349#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction349__action(val* self, val* p0) {
+parser__ReduceAction349__action(self, p0); /* Direct call parser#ReduceAction349#action on <self:Object(ReduceAction349)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction350#action for (self: ReduceAction350, Parser) */
+void parser__ReduceAction350__action(val* self, val* p0) {
+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_tfloatnode2 /* var tfloatnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AFloatExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tfloatnode2 = var_nodearraylist1;
+/* <var_tfloatnode2:nullable Object> isa nullable TFloat */
+cltype = type_nullable_parser_nodes__TFloat.color;
+idtype = type_nullable_parser_nodes__TFloat.id;
+if(var_tfloatnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tfloatnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tfloatnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8952);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8954);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
+{
+parser_prod__AFloatExpr__init_afloatexpr(var7, var_tfloatnode2, var_pannotationsnode3); /* Direct call parser_prod#AFloatExpr#init_afloatexpr on <var7:AFloatExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction350> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction350#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction350__action(val* self, val* p0) {
+parser__ReduceAction350__action(self, p0); /* Direct call parser#ReduceAction350#action on <self:Object(ReduceAction350)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction351#action for (self: ReduceAction351, Parser) */
+void parser__ReduceAction351__action(val* self, val* p0) {
+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_tcharnode2 /* var tcharnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : ACharExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tcharnode2 = var_nodearraylist1;
+/* <var_tcharnode2:nullable Object> isa nullable TChar */
+cltype = type_nullable_parser_nodes__TChar.color;
+idtype = type_nullable_parser_nodes__TChar.id;
+if(var_tcharnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tcharnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tcharnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8971);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8973);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
+{
+parser_prod__ACharExpr__init_acharexpr(var7, var_tcharnode2, var_pannotationsnode3); /* Direct call parser_prod#ACharExpr#init_acharexpr on <var7:ACharExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction351> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction351#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction351__action(val* self, val* p0) {
+parser__ReduceAction351__action(self, p0); /* Direct call parser#ReduceAction351#action on <self:Object(ReduceAction351)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction352#action for (self: ReduceAction352, Parser) */
+void parser__ReduceAction352__action(val* self, val* p0) {
+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_tstringnode2 /* var tstringnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : AStringExpr */;
+val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+var_p = p0;
+var = NULL;
+var_node_list = var;
+{
+var1 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = parser_work__Parser__pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_tstringnode2 = var_nodearraylist1;
+/* <var_tstringnode2:nullable Object> isa nullable TString */
+cltype = type_nullable_parser_nodes__TString.color;
+idtype = type_nullable_parser_nodes__TString.id;
+if(var_tstringnode2 == NULL) {
+var3 = 1;
+} else {
+if(cltype >= var_tstringnode2->type->table_size) {
+var3 = 0;
+} else {
+var3 = var_tstringnode2->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8990);
+show_backtrace(1);
+}
+var_pannotationsnode3 = var_nodearraylist2;
+/* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
+cltype5 = type_nullable_parser_nodes__AAnnotations.color;
+idtype6 = type_nullable_parser_nodes__AAnnotations.id;
+if(var_pannotationsnode3 == NULL) {
+var4 = 1;
+} else {
+if(cltype5 >= var_pannotationsnode3->type->table_size) {
+var4 = 0;
+} else {
+var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
+}
+}
+if (unlikely(!var4)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8992);
+show_backtrace(1);
+}
+var7 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
+{
+parser_prod__AStringExpr__init_astringexpr(var7, var_tstringnode2, var_pannotationsnode3); /* Direct call parser_prod#AStringExpr#init_astringexpr on <var7:AStringExpr>*/
+}
+var_pexprnode1 = var7;
+var_node_list = var_pexprnode1;
+var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction352> */
+{
+var9 = parser_work__Parser__go_to(var_p, var8);
+}
+{
+parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction352#action for (self: Object, Parser) */
+void VIRTUAL_parser__ReduceAction352__action(val* self, val* p0) {
+parser__ReduceAction352__action(self, p0); /* Direct call parser#ReduceAction352#action on <self:Object(ReduceAction352)>*/
+RET_LABEL:;
+}
+/* method parser#ReduceAction355#action for (self: ReduceAction355, Parser) */
+void parser__ReduceAction355__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var /* : null */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
+val* var2 /* : nullable Object */;