+val* var /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwredefnode1 /* var tkwredefnode1: nullable Object */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var;
+var_tkwredefnode1 = var_nodearraylist1;
+var_node_list = var_tkwredefnode1;
+var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
+{
+var2 = nit___nit__Parser___go_to(var_p, var1);
+}
+{
+nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */
+void nit__parser___nit__parser__ReduceAction32___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwclassnode2 /* var tkwclassnode2: nullable Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+val* var2 /* : AConcreteClasskind */;
+val* var_pclasskindnode1 /* var pclasskindnode1: nullable AConcreteClasskind */;
+long var3 /* : Int */;
+long var4 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var;
+var_tkwclassnode2 = var_nodearraylist1;
+/* <var_tkwclassnode2:nullable Object> isa nullable TKwclass */
+cltype = type_nullable__nit__TKwclass.color;
+idtype = type_nullable__nit__TKwclass.id;
+if(var_tkwclassnode2 == NULL) {
+var1 = 1;
+} else {
+if(cltype >= (((long)var_tkwclassnode2&3)?type_info[((long)var_tkwclassnode2&3)]:var_tkwclassnode2->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)var_tkwclassnode2&3)?type_info[((long)var_tkwclassnode2&3)]:var_tkwclassnode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var1)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2052);
+fatal_exit(1);
+}
+var2 = NEW_nit__AConcreteClasskind(&type_nit__AConcreteClasskind);
+{
+nit__parser_prod___AConcreteClasskind___init_aconcreteclasskind(var2, var_tkwclassnode2); /* Direct call parser_prod#AConcreteClasskind#init_aconcreteclasskind on <var2:AConcreteClasskind>*/
+}
+var_pclasskindnode1 = var2;
+var_node_list = var_pclasskindnode1;
+var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
+{
+var4 = nit___nit__Parser___go_to(var_p, var3);
+}
+{
+nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */
+void nit__parser___nit__parser__ReduceAction33___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwabstractnode2 /* var tkwabstractnode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
+short int var3 /* : Bool */;
+int cltype4;
+int idtype5;
+val* var6 /* : AAbstractClasskind */;
+val* var_pclasskindnode1 /* var pclasskindnode1: nullable AAbstractClasskind */;
+long var7 /* : Int */;
+long var8 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var;
+{
+var1 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var1;
+var_tkwabstractnode2 = var_nodearraylist1;
+/* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
+cltype = type_nullable__nit__TKwabstract.color;
+idtype = type_nullable__nit__TKwabstract.id;
+if(var_tkwabstractnode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->table_size) {
+var2 = 0;
+} else {
+var2 = (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var2)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2068);
+fatal_exit(1);
+}
+var_tkwclassnode3 = var_nodearraylist2;
+/* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
+cltype4 = type_nullable__nit__TKwclass.color;
+idtype5 = type_nullable__nit__TKwclass.id;
+if(var_tkwclassnode3 == NULL) {
+var3 = 1;
+} else {
+if(cltype4 >= (((long)var_tkwclassnode3&3)?type_info[((long)var_tkwclassnode3&3)]:var_tkwclassnode3->type)->table_size) {
+var3 = 0;
+} else {
+var3 = (((long)var_tkwclassnode3&3)?type_info[((long)var_tkwclassnode3&3)]:var_tkwclassnode3->type)->type_table[cltype4] == idtype5;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2070);
+fatal_exit(1);
+}
+var6 = NEW_nit__AAbstractClasskind(&type_nit__AAbstractClasskind);
+{
+nit__parser_prod___AAbstractClasskind___init_aabstractclasskind(var6, var_tkwabstractnode2, var_tkwclassnode3); /* Direct call parser_prod#AAbstractClasskind#init_aabstractclasskind on <var6:AAbstractClasskind>*/
+}
+var_pclasskindnode1 = var6;
+var_node_list = var_pclasskindnode1;
+var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
+{
+var8 = nit___nit__Parser___go_to(var_p, var7);
+}
+{
+nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */
+void nit__parser___nit__parser__ReduceAction34___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwinterfacenode2 /* var tkwinterfacenode2: nullable Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+val* var2 /* : AInterfaceClasskind */;
+val* var_pclasskindnode1 /* var pclasskindnode1: nullable AInterfaceClasskind */;
+long var3 /* : Int */;
+long var4 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var;
+var_tkwinterfacenode2 = var_nodearraylist1;
+/* <var_tkwinterfacenode2:nullable Object> isa nullable TKwinterface */
+cltype = type_nullable__nit__TKwinterface.color;
+idtype = type_nullable__nit__TKwinterface.id;
+if(var_tkwinterfacenode2 == NULL) {
+var1 = 1;
+} else {
+if(cltype >= (((long)var_tkwinterfacenode2&3)?type_info[((long)var_tkwinterfacenode2&3)]:var_tkwinterfacenode2->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)var_tkwinterfacenode2&3)?type_info[((long)var_tkwinterfacenode2&3)]:var_tkwinterfacenode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var1)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2086);
+fatal_exit(1);
+}
+var2 = NEW_nit__AInterfaceClasskind(&type_nit__AInterfaceClasskind);
+{
+nit__parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(var2, var_tkwinterfacenode2); /* Direct call parser_prod#AInterfaceClasskind#init_ainterfaceclasskind on <var2:AInterfaceClasskind>*/
+}
+var_pclasskindnode1 = var2;
+var_node_list = var_pclasskindnode1;
+var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
+{
+var4 = nit___nit__Parser___go_to(var_p, var3);
+}
+{
+nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */
+void nit__parser___nit__parser__ReduceAction35___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwenumnode2 /* var tkwenumnode2: nullable Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+val* var2 /* : AEnumClasskind */;
+val* var_pclasskindnode1 /* var pclasskindnode1: nullable AEnumClasskind */;
+long var3 /* : Int */;
+long var4 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var;
+var_tkwenumnode2 = var_nodearraylist1;
+/* <var_tkwenumnode2:nullable Object> isa nullable TKwenum */
+cltype = type_nullable__nit__TKwenum.color;
+idtype = type_nullable__nit__TKwenum.id;
+if(var_tkwenumnode2 == NULL) {
+var1 = 1;
+} else {
+if(cltype >= (((long)var_tkwenumnode2&3)?type_info[((long)var_tkwenumnode2&3)]:var_tkwenumnode2->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)var_tkwenumnode2&3)?type_info[((long)var_tkwenumnode2&3)]:var_tkwenumnode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var1)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2101);
+fatal_exit(1);
+}
+var2 = NEW_nit__AEnumClasskind(&type_nit__AEnumClasskind);
+{
+nit__parser_prod___AEnumClasskind___init_aenumclasskind(var2, var_tkwenumnode2); /* Direct call parser_prod#AEnumClasskind#init_aenumclasskind on <var2:AEnumClasskind>*/
+}
+var_pclasskindnode1 = var2;
+var_node_list = var_pclasskindnode1;
+var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
+{
+var4 = nit___nit__Parser___go_to(var_p, var3);
+}
+{
+nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */
+void nit__parser___nit__parser__ReduceAction36___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
+short int var3 /* : Bool */;
+int cltype4;
+int idtype5;
+val* var6 /* : AExternClasskind */;
+val* var_pclasskindnode1 /* var pclasskindnode1: nullable AExternClasskind */;
+long var7 /* : Int */;
+long var8 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var;
+{
+var1 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var1;
+var_tkwexternnode2 = var_nodearraylist1;
+/* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
+cltype = type_nullable__nit__TKwextern.color;
+idtype = type_nullable__nit__TKwextern.id;
+if(var_tkwexternnode2 == NULL) {
+var2 = 1;
+} else {
+if(cltype >= (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->table_size) {
+var2 = 0;
+} else {
+var2 = (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var2)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2117);
+fatal_exit(1);
+}
+var_tkwclassnode3 = var_nodearraylist2;
+/* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
+cltype4 = type_nullable__nit__TKwclass.color;
+idtype5 = type_nullable__nit__TKwclass.id;
+if(var_tkwclassnode3 == NULL) {
+var3 = 1;
+} else {
+if(cltype4 >= (((long)var_tkwclassnode3&3)?type_info[((long)var_tkwclassnode3&3)]:var_tkwclassnode3->type)->table_size) {
+var3 = 0;
+} else {
+var3 = (((long)var_tkwclassnode3&3)?type_info[((long)var_tkwclassnode3&3)]:var_tkwclassnode3->type)->type_table[cltype4] == idtype5;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2119);
+fatal_exit(1);
+}
+var6 = NEW_nit__AExternClasskind(&type_nit__AExternClasskind);
+{
+nit__parser_prod___AExternClasskind___init_aexternclasskind(var6, var_tkwexternnode2, var_tkwclassnode3); /* Direct call parser_prod#AExternClasskind#init_aexternclasskind on <var6:AExternClasskind>*/
+}
+var_pclasskindnode1 = var6;
+var_node_list = var_pclasskindnode1;
+var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
+{
+var8 = nit___nit__Parser___go_to(var_p, var7);
+}
+{
+nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */
+void nit__parser___nit__parser__ReduceAction37___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var1 /* : Array[Object] */;
+val* var_listnode2 /* var listnode2: Array[Object] */;
+val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+long var4 /* : Int */;
+long var5 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var;
+var1 = NEW_standard__Array(&type_standard__Array__standard__Object);
+{
+standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
+}
+var_listnode2 = var1;
+var_pformaldefnode1 = var_nodearraylist1;
+if (var_pformaldefnode1 == NULL) {
+var2 = 0; /* is null */
+} else {
+var2 = 1; /* arg is null and recv is not */
+}
+if (0) {
+var3 = ((short int(*)(val* self, val* p0))((((long)var_pformaldefnode1&3)?class_info[((long)var_pformaldefnode1&3)]:var_pformaldefnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pformaldefnode1, ((val*)NULL)); /* != on <var_pformaldefnode1:nullable Object>*/
+var2 = var3;
+}
+if (var2){
+{
+standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode2, var_pformaldefnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
+}
+} else {
+}
+var_node_list = var_listnode2;
+var4 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
+{
+var5 = nit___nit__Parser___go_to(var_p, var4);
+}
+{
+nit___nit__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */
+void nit__parser___nit__parser__ReduceAction38___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var2 /* : Array[Object] */;
+val* var_listnode3 /* var listnode3: Array[Object] */;
+val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
+val* var_listnode2 /* var listnode2: nullable Object */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+short int var4 /* : Bool */;
+short int var5 /* : Bool */;
+val* var6 /* : Array[Object] */;
+long var7 /* : Int */;
+long var8 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var;
+{
+var1 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var1;
+var2 = NEW_standard__Array(&type_standard__Array__standard__Object);
+{
+standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
+}
+var_listnode3 = var2;
+var_pformaldefnode1 = var_nodearraylist1;
+var_listnode2 = var_nodearraylist2;
+/* <var_listnode2:nullable Object> isa Array[Object] */
+cltype = type_standard__Array__standard__Object.color;
+idtype = type_standard__Array__standard__Object.id;
+if(var_listnode2 == NULL) {
+var3 = 0;
+} else {
+if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
+var3 = 0;
+} else {
+var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var3)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser, 2153);
+fatal_exit(1);
+}
+if (var_pformaldefnode1 == NULL) {
+var4 = 0; /* is null */
+} else {
+var4 = 1; /* arg is null and recv is not */
+}
+if (0) {
+var5 = ((short int(*)(val* self, val* p0))((((long)var_pformaldefnode1&3)?class_info[((long)var_pformaldefnode1&3)]:var_pformaldefnode1->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_pformaldefnode1, ((val*)NULL)); /* != on <var_pformaldefnode1:nullable Object>*/
+var4 = var5;
+}
+if (var4){
+{
+standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_listnode3, var_pformaldefnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
+}
+} else {
+}
+{
+var6 = nit__parser_work___nit__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
+}
+var_listnode3 = var6;
+var_node_list = var_listnode3;
+var7 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
+{
+var8 = nit___nit__Parser___go_to(var_p, var7);
+}
+{
+nit___nit__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */
+void nit__parser___nit__parser__ReduceAction39___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : Array[Object] */;
+val* var_listnode1 /* var listnode1: Array[Object] */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+var = NEW_standard__Array(&type_standard__Array__standard__Object);
+{
+standard___standard__Array___standard__kernel__Object__init(var); /* Direct call array#Array#init on <var:Array[Object]>*/
+}
+var_listnode1 = var;
+var_node_list = var_listnode1;
+var1 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
+{
+var2 = nit___nit__Parser___go_to(var_p, var1);
+}
+{
+nit___nit__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */
+void nit__parser___nit__parser__ReduceAction40___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;
+val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
+val* var1 /* : nullable Object */;
+val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
+val* var2 /* : nullable Object */;
+val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
+val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
+long var3 /* : Int */;
+long var4 /* : Int */;
+var_p = p0;
+var_node_list = ((val*)NULL);
+{
+var = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist3 = var;
+{
+var1 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist2 = var1;
+{
+var2 = nit___nit__Parser___pop(var_p);
+}
+var_nodearraylist1 = var2;
+var_pformaldefnode1 = var_nodearraylist3;
+var_node_list = var_pformaldefnode1;
+var3 = self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
+{
+var4 = nit___nit__Parser___go_to(var_p, var3);
+}
+{
+nit___nit__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
+}
+RET_LABEL:;
+}
+/* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */
+void nit__parser___nit__parser__ReduceAction41___nit__parser_work__ReduceAction__action(val* self, val* p0) {
+val* var_p /* var p: Parser */;
+val* var_node_list /* var node_list: nullable Object */;
+val* var /* : nullable Object */;