Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__parser_work.sep.1.c
index b77e6a9..1e56508 100644 (file)
@@ -1,27 +1,27 @@
 #include "nitc__parser_work.sep.0.h"
-/* method parser_work#State#state= for (self: State, Int) */
+/* method parser_work$State$state= for (self: State, Int) */
 void nitc__parser_work___nitc__parser_work__State___state_61d(val* self, long p0) {
 self->attrs[COLOR_nitc__parser_work__State___state].l = p0; /* _state on <self:State> */
 RET_LABEL:;
 }
-/* method parser_work#State#nodes= for (self: State, nullable Object) */
+/* method parser_work$State$nodes= for (self: State, nullable Object) */
 void nitc__parser_work___nitc__parser_work__State___nodes_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__parser_work__State___nodes].val = p0; /* _nodes on <self:State> */
 RET_LABEL:;
 }
-/* method parser_work#State#init for (self: State) */
+/* method parser_work$State$init for (self: State) */
 void nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init(val* self) {
 {
 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init]))(self); /* init on <self:State>*/
 }
 RET_LABEL:;
 }
-/* method parser_work#Parser#lexer= for (self: Parser, Lexer) */
+/* method parser_work$Parser$lexer= for (self: Parser, Lexer) */
 void nitc___nitc__Parser___lexer_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__parser_work__Parser___lexer].val = p0; /* _lexer on <self:Parser> */
 RET_LABEL:;
 }
-/* method parser_work#Parser#init for (self: Parser) */
+/* method parser_work$Parser$init for (self: Parser) */
 void nitc___nitc__Parser___core__kernel__Object__init(val* self) {
 static val* varonce;
 static int varonce_guard;
@@ -41,14 +41,14 @@ varonce = var;
 varonce_guard = 1;
 }
 {
-{ /* Inline parser_work#Parser#reduce_table= (self,var) on <self:Parser> */
+{ /* Inline parser_work$Parser$reduce_table= (self,var) on <self:Parser> */
 self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val = var; /* _reduce_table on <self:Parser> */
 RET_LABEL2:(void)0;
 }
 }
 RET_LABEL:;
 }
-/* method parser_work#Parser#go_to for (self: Parser, Int): Int */
+/* method parser_work$Parser$go_to for (self: Parser, Int): Int */
 long nitc___nitc__Parser___go_to(val* self, long p0) {
 long var /* : Int */;
 long var_index /* var index: Int */;
@@ -140,7 +140,7 @@ var1 = nitc___nitc__Parser___state(self);
 var_state = var1;
 var_low = 1l;
 {
-{ /* Inline tables#TablesCapable#parser_goto (self,var_index,0l) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_goto (self,var_index,0l) on <self:Parser> */
 var4 = parser_goto(self, var_index, 0l);
 var2 = var4;
 goto RET_LABEL3;
@@ -148,14 +148,14 @@ RET_LABEL3:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var2,1l) on <var2:Int> */
+{ /* Inline kernel$Int$- (var2,1l) on <var2:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var7 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var7)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var8 = var2 - 1l;
@@ -167,14 +167,14 @@ RET_LABEL6:(void)0;
 var_high = var5;
 for(;;) {
 {
-{ /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
+{ /* Inline kernel$Int$<= (var_low,var_high) on <var_low:Int> */
 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
 /* <var_high:Int> isa OTHER */
 var11 = 1; /* easy <var_high:Int> isa OTHER*/
 if (unlikely(!var11)) {
 var_class_name14 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var15 = var_low <= var_high;
@@ -185,14 +185,14 @@ RET_LABEL10:(void)0;
 }
 if (var9){
 {
-{ /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
+{ /* Inline kernel$Int$+ (var_low,var_high) on <var_low:Int> */
 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
 /* <var_high:Int> isa OTHER */
 var18 = 1; /* easy <var_high:Int> isa OTHER*/
 if (unlikely(!var18)) {
 var_class_name21 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var22 = var_low + var_high;
@@ -202,14 +202,14 @@ RET_LABEL17:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#/ (var16,2l) on <var16:Int> */
+{ /* Inline kernel$Int$/ (var16,2l) on <var16:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var25 = 1; /* easy <2l:Int> isa OTHER*/
 if (unlikely(!var25)) {
 var_class_name28 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var29 = var16 / 2l;
@@ -220,14 +220,14 @@ RET_LABEL24:(void)0;
 }
 var_middle = var23;
 {
-{ /* Inline kernel#Int#* (var_middle,2l) on <var_middle:Int> */
+{ /* Inline kernel$Int$* (var_middle,2l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var32 = 1; /* easy <2l:Int> isa OTHER*/
 if (unlikely(!var32)) {
 var_class_name35 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
 fatal_exit(1);
 }
 var36 = var_middle * 2l;
@@ -237,14 +237,14 @@ RET_LABEL31:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (var30,1l) on <var30:Int> */
+{ /* Inline kernel$Int$+ (var30,1l) on <var30:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var39 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var39)) {
 var_class_name42 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var43 = var30 + 1l;
@@ -255,7 +255,7 @@ RET_LABEL38:(void)0;
 }
 var_subindex = var37;
 {
-{ /* Inline tables#TablesCapable#parser_goto (self,var_index,var_subindex) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_goto (self,var_index,var_subindex) on <self:Parser> */
 var46 = parser_goto(self, var_index, var_subindex);
 var44 = var46;
 goto RET_LABEL45;
@@ -264,14 +264,14 @@ RET_LABEL45:(void)0;
 }
 var_goal = var44;
 {
-{ /* Inline kernel#Int#< (var_state,var_goal) on <var_state:Int> */
+{ /* Inline kernel$Int$< (var_state,var_goal) on <var_state:Int> */
 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
 /* <var_goal:Int> isa OTHER */
 var49 = 1; /* easy <var_goal:Int> isa OTHER*/
 if (unlikely(!var49)) {
 var_class_name52 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var53 = var_state < var_goal;
@@ -282,14 +282,14 @@ RET_LABEL48:(void)0;
 }
 if (var47){
 {
-{ /* Inline kernel#Int#- (var_middle,1l) on <var_middle:Int> */
+{ /* Inline kernel$Int$- (var_middle,1l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var56 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var56)) {
 var_class_name59 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var60 = var_middle - 1l;
@@ -301,14 +301,14 @@ RET_LABEL55:(void)0;
 var_high = var54;
 } else {
 {
-{ /* Inline kernel#Int#> (var_state,var_goal) on <var_state:Int> */
+{ /* Inline kernel$Int$> (var_state,var_goal) on <var_state:Int> */
 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
 /* <var_goal:Int> isa OTHER */
 var63 = 1; /* easy <var_goal:Int> isa OTHER*/
 if (unlikely(!var63)) {
 var_class_name66 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
 var67 = var_state > var_goal;
@@ -319,14 +319,14 @@ RET_LABEL62:(void)0;
 }
 if (var61){
 {
-{ /* Inline kernel#Int#+ (var_middle,1l) on <var_middle:Int> */
+{ /* Inline kernel$Int$+ (var_middle,1l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var70 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var70)) {
 var_class_name73 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var74 = var_middle + 1l;
@@ -338,14 +338,14 @@ RET_LABEL69:(void)0;
 var_low = var68;
 } else {
 {
-{ /* Inline kernel#Int#+ (var_subindex,1l) on <var_subindex:Int> */
+{ /* Inline kernel$Int$+ (var_subindex,1l) on <var_subindex:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var77 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var77)) {
 var_class_name80 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var81 = var_subindex + 1l;
@@ -355,7 +355,7 @@ RET_LABEL76:(void)0;
 }
 }
 {
-{ /* Inline tables#TablesCapable#parser_goto (self,var_index,var75) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_goto (self,var_index,var75) on <self:Parser> */
 var84 = parser_goto(self, var_index, var75);
 var82 = var84;
 goto RET_LABEL83;
@@ -372,7 +372,7 @@ goto BREAK_label;
 }
 BREAK_label: (void)0;
 {
-{ /* Inline tables#TablesCapable#parser_goto (self,var_index,2l) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_goto (self,var_index,2l) on <self:Parser> */
 var87 = parser_goto(self, var_index, 2l);
 var85 = var87;
 goto RET_LABEL86;
@@ -384,7 +384,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#Parser#push for (self: Parser, Int, nullable Object) */
+/* method parser_work$Parser$push for (self: Parser, Int, nullable Object) */
 void nitc___nitc__Parser___push(val* self, long p0, val* p1) {
 long var_numstate /* var numstate: Int */;
 val* var_list_node /* var list_node: nullable Object */;
@@ -414,14 +414,14 @@ var_numstate = p0;
 var_list_node = p1;
 var = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
 {
-{ /* Inline kernel#Int#+ (var,1l) on <var:Int> */
+{ /* Inline kernel$Int$+ (var,1l) on <var:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var3 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var3)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var4 = var + 1l;
@@ -434,26 +434,29 @@ var_pos = var1;
 self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l = var_pos; /* _stack_pos on <self:Parser> */
 var5 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 75);
 fatal_exit(1);
 }
 {
-{ /* Inline array#AbstractArrayRead#length (var5) on <var5:Array[State]> */
+{ /* Inline array$AbstractArrayRead$length (var5) on <var5:Array[State]> */
 var8 = var5->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var5:Array[State]> */
 var6 = var8;
 RET_LABEL7:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#< (var_pos,var6) on <var_pos:Int> */
+{ /* Inline kernel$Int$< (var_pos,var6) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
 /* <var6:Int> isa OTHER */
 var11 = 1; /* easy <var6:Int> isa OTHER*/
 if (unlikely(!var11)) {
 var_class_name14 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var15 = var_pos < var6;
@@ -465,6 +468,9 @@ RET_LABEL10:(void)0;
 if (var9){
 var16 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
 if (unlikely(var16 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 76);
 fatal_exit(1);
@@ -478,6 +484,9 @@ var_state->attrs[COLOR_nitc__parser_work__State___nodes].val = var_list_node; /*
 } else {
 var18 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
 if (unlikely(var18 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 80);
 fatal_exit(1);
@@ -493,12 +502,12 @@ var19 = NEW_nitc__parser_work__State(&type_nitc__parser_work__State);
 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:State>*/
 }
 {
-core___core__AbstractArray___core__abstract_collection__Sequence__push(var18, var19); /* Direct call array#AbstractArray#push on <var18:Array[State]>*/
+core___core__AbstractArray___core__abstract_collection__Sequence__push(var18, var19); /* Direct call array$AbstractArray$push on <var18:Array[State]>*/
 }
 }
 RET_LABEL:;
 }
-/* method parser_work#Parser#state for (self: Parser): Int */
+/* method parser_work$Parser$state for (self: Parser): Int */
 long nitc___nitc__Parser___state(val* self) {
 long var /* : Int */;
 val* var1 /* : Array[State] */;
@@ -507,6 +516,9 @@ val* var3 /* : nullable Object */;
 long var4 /* : Int */;
 var1 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 87);
 fatal_exit(1);
@@ -521,7 +533,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#Parser#pop for (self: Parser): nullable Object */
+/* method parser_work$Parser$pop for (self: Parser): nullable Object */
 val* nitc___nitc__Parser___pop(val* self) {
 val* var /* : nullable Object */;
 val* var1 /* : Array[State] */;
@@ -538,6 +550,9 @@ const char* var_class_name;
 long var9 /* : Int */;
 var1 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 93);
 fatal_exit(1);
@@ -550,14 +565,14 @@ var4 = var3->attrs[COLOR_nitc__parser_work__State___nodes].val; /* _nodes on <va
 var_res = var4;
 var5 = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
 {
-{ /* Inline kernel#Int#- (var5,1l) on <var5:Int> */
+{ /* Inline kernel$Int$- (var5,1l) on <var5:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var8 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var8)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var9 = var5 - 1l;
@@ -572,7 +587,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#Parser#parse for (self: Parser): Start */
+/* method parser_work$Parser$parse for (self: Parser): Start */
 val* nitc___nitc__Parser___parse(val* self) {
 val* var /* : Start */;
 val* var1 /* : Lexer */;
@@ -714,24 +729,35 @@ val* var145 /* : NativeArray[String] */;
 static val* varonce;
 static val* varonce146;
 val* var147 /* : String */;
-char* var148 /* : NativeString */;
+char* var148 /* : CString */;
 val* var149 /* : String */;
-static val* varonce150;
-val* var151 /* : String */;
-char* var152 /* : NativeString */;
-val* var153 /* : String */;
-val* var154 /* : String */;
+val* var150 /* : nullable Int */;
+val* var151 /* : nullable Int */;
+val* var152 /* : nullable Bool */;
+val* var153 /* : nullable Bool */;
+static val* varonce154;
 val* var155 /* : String */;
-val* var156 /* : Location */;
-val* var158 /* : Location */;
-val* var_node2159 /* var node2: AParserError */;
-val* var160 /* : Start */;
-val* var_node161 /* var node: Start */;
-{
-nitc___nitc__Parser___push(self, 0l, ((val*)NULL)); /* Direct call parser_work#Parser#push on <self:Parser>*/
+char* var156 /* : CString */;
+val* var157 /* : String */;
+val* var158 /* : nullable Int */;
+val* var159 /* : nullable Int */;
+val* var160 /* : nullable Bool */;
+val* var161 /* : nullable Bool */;
+val* var162 /* : String */;
+val* var163 /* : String */;
+val* var164 /* : Location */;
+val* var166 /* : Location */;
+val* var_node2167 /* var node2: AParserError */;
+val* var168 /* : Start */;
+val* var_node169 /* var node: Start */;
+{
+nitc___nitc__Parser___push(self, 0l, ((val*)NULL)); /* Direct call parser_work$Parser$push on <self:Parser>*/
 }
 var1 = self->attrs[COLOR_nitc__parser_work__Parser___lexer].val; /* _lexer on <self:Parser> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lexer");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 103);
 fatal_exit(1);
@@ -774,7 +800,7 @@ var6 = ((long(*)(val* self))(var_token->class->vft[COLOR_nitc__lexer_work__Token
 }
 var_index = var6;
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,2l) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,2l) on <self:Parser> */
 var9 = parser_action(self, var_state, 2l);
 var7 = var9;
 goto RET_LABEL8;
@@ -783,7 +809,7 @@ RET_LABEL8:(void)0;
 }
 var_action_type = var7;
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,3l) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,3l) on <self:Parser> */
 var12 = parser_action(self, var_state, 3l);
 var10 = var12;
 goto RET_LABEL11;
@@ -793,7 +819,7 @@ RET_LABEL11:(void)0;
 var_action_value = var10;
 var_low = 1l;
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,0l) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,0l) on <self:Parser> */
 var15 = parser_action(self, var_state, 0l);
 var13 = var15;
 goto RET_LABEL14;
@@ -801,14 +827,14 @@ RET_LABEL14:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var13,1l) on <var13:Int> */
+{ /* Inline kernel$Int$- (var13,1l) on <var13:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var18 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var18)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var21 = var13 - 1l;
@@ -820,14 +846,14 @@ RET_LABEL17:(void)0;
 var_high = var16;
 for(;;) {
 {
-{ /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
+{ /* Inline kernel$Int$<= (var_low,var_high) on <var_low:Int> */
 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
 /* <var_high:Int> isa OTHER */
 var24 = 1; /* easy <var_high:Int> isa OTHER*/
 if (unlikely(!var24)) {
 var_class_name27 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var28 = var_low <= var_high;
@@ -838,14 +864,14 @@ RET_LABEL23:(void)0;
 }
 if (var22){
 {
-{ /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
+{ /* Inline kernel$Int$+ (var_low,var_high) on <var_low:Int> */
 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
 /* <var_high:Int> isa OTHER */
 var31 = 1; /* easy <var_high:Int> isa OTHER*/
 if (unlikely(!var31)) {
 var_class_name34 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var35 = var_low + var_high;
@@ -855,14 +881,14 @@ RET_LABEL30:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#/ (var29,2l) on <var29:Int> */
+{ /* Inline kernel$Int$/ (var29,2l) on <var29:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var38 = 1; /* easy <2l:Int> isa OTHER*/
 if (unlikely(!var38)) {
 var_class_name41 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var42 = var29 / 2l;
@@ -873,14 +899,14 @@ RET_LABEL37:(void)0;
 }
 var_middle = var36;
 {
-{ /* Inline kernel#Int#* (var_middle,3l) on <var_middle:Int> */
+{ /* Inline kernel$Int$* (var_middle,3l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
 /* <3l:Int> isa OTHER */
 var45 = 1; /* easy <3l:Int> isa OTHER*/
 if (unlikely(!var45)) {
 var_class_name48 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
 fatal_exit(1);
 }
 var49 = var_middle * 3l;
@@ -890,14 +916,14 @@ RET_LABEL44:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (var43,1l) on <var43:Int> */
+{ /* Inline kernel$Int$+ (var43,1l) on <var43:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var52 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var52)) {
 var_class_name55 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var56 = var43 + 1l;
@@ -908,7 +934,7 @@ RET_LABEL51:(void)0;
 }
 var_subindex = var50;
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,var_subindex) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,var_subindex) on <self:Parser> */
 var59 = parser_action(self, var_state, var_subindex);
 var57 = var59;
 goto RET_LABEL58;
@@ -917,14 +943,14 @@ RET_LABEL58:(void)0;
 }
 var_goal = var57;
 {
-{ /* Inline kernel#Int#< (var_index,var_goal) on <var_index:Int> */
+{ /* Inline kernel$Int$< (var_index,var_goal) on <var_index:Int> */
 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
 /* <var_goal:Int> isa OTHER */
 var62 = 1; /* easy <var_goal:Int> isa OTHER*/
 if (unlikely(!var62)) {
 var_class_name65 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var66 = var_index < var_goal;
@@ -935,14 +961,14 @@ RET_LABEL61:(void)0;
 }
 if (var60){
 {
-{ /* Inline kernel#Int#- (var_middle,1l) on <var_middle:Int> */
+{ /* Inline kernel$Int$- (var_middle,1l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var69 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var69)) {
 var_class_name72 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var73 = var_middle - 1l;
@@ -954,14 +980,14 @@ RET_LABEL68:(void)0;
 var_high = var67;
 } else {
 {
-{ /* Inline kernel#Int#> (var_index,var_goal) on <var_index:Int> */
+{ /* Inline kernel$Int$> (var_index,var_goal) on <var_index:Int> */
 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
 /* <var_goal:Int> isa OTHER */
 var76 = 1; /* easy <var_goal:Int> isa OTHER*/
 if (unlikely(!var76)) {
 var_class_name79 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
 var80 = var_index > var_goal;
@@ -972,14 +998,14 @@ RET_LABEL75:(void)0;
 }
 if (var74){
 {
-{ /* Inline kernel#Int#+ (var_middle,1l) on <var_middle:Int> */
+{ /* Inline kernel$Int$+ (var_middle,1l) on <var_middle:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var83 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var83)) {
 var_class_name86 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var87 = var_middle + 1l;
@@ -991,14 +1017,14 @@ RET_LABEL82:(void)0;
 var_low = var81;
 } else {
 {
-{ /* Inline kernel#Int#+ (var_subindex,1l) on <var_subindex:Int> */
+{ /* Inline kernel$Int$+ (var_subindex,1l) on <var_subindex:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var90 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var90)) {
 var_class_name93 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var94 = var_subindex + 1l;
@@ -1008,7 +1034,7 @@ RET_LABEL89:(void)0;
 }
 }
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,var88) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,var88) on <self:Parser> */
 var97 = parser_action(self, var_state, var88);
 var95 = var97;
 goto RET_LABEL96;
@@ -1017,14 +1043,14 @@ RET_LABEL96:(void)0;
 }
 var_action_type = var95;
 {
-{ /* Inline kernel#Int#+ (var_subindex,2l) on <var_subindex:Int> */
+{ /* Inline kernel$Int$+ (var_subindex,2l) on <var_subindex:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var100 = 1; /* easy <2l:Int> isa OTHER*/
 if (unlikely(!var100)) {
 var_class_name103 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var104 = var_subindex + 2l;
@@ -1034,7 +1060,7 @@ RET_LABEL99:(void)0;
 }
 }
 {
-{ /* Inline tables#TablesCapable#parser_action (self,var_state,var98) on <self:Parser> */
+{ /* Inline tables$TablesCapable$parser_action (self,var_state,var98) on <self:Parser> */
 var107 = parser_action(self, var_state, var98);
 var105 = var107;
 goto RET_LABEL106;
@@ -1051,7 +1077,7 @@ goto BREAK_label;
 }
 BREAK_label: (void)0;
 {
-{ /* Inline kernel#Int#== (var_action_type,0l) on <var_action_type:Int> */
+{ /* Inline kernel$Int$== (var_action_type,0l) on <var_action_type:Int> */
 var110 = var_action_type == 0l;
 var108 = var110;
 goto RET_LABEL109;
@@ -1063,11 +1089,11 @@ if (var108){
 var111 = nitc___nitc__Lexer___next(var_lexer);
 }
 {
-nitc___nitc__Parser___push(self, var_action_value, var111); /* Direct call parser_work#Parser#push on <self:Parser>*/
+nitc___nitc__Parser___push(self, var_action_value, var111); /* Direct call parser_work$Parser$push on <self:Parser>*/
 }
 } else {
 {
-{ /* Inline kernel#Int#== (var_action_type,1l) on <var_action_type:Int> */
+{ /* Inline kernel$Int$== (var_action_type,1l) on <var_action_type:Int> */
 var114 = var_action_type == 1l;
 var112 = var114;
 goto RET_LABEL113;
@@ -1077,6 +1103,9 @@ RET_LABEL113:(void)0;
 if (var112){
 var115 = self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val; /* _reduce_table on <self:Parser> */
 if (unlikely(var115 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _reduce_table");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 137);
 fatal_exit(1);
@@ -1089,7 +1118,7 @@ var116 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(
 }
 } else {
 {
-{ /* Inline kernel#Int#== (var_action_type,2l) on <var_action_type:Int> */
+{ /* Inline kernel$Int$== (var_action_type,2l) on <var_action_type:Int> */
 var119 = var_action_type == 2l;
 var117 = var119;
 goto RET_LABEL118;
@@ -1110,6 +1139,9 @@ var121 = 0;
 var121 = var_node2->type->type_table[cltype122] == idtype123;
 }
 if (unlikely(!var121)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 140);
 fatal_exit(1);
@@ -1131,6 +1163,9 @@ var125 = (((long)var_node1&3)?type_info[((long)var_node1&3)]:var_node1->type)->t
 }
 }
 if (unlikely(!var125)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 142);
 fatal_exit(1);
@@ -1147,16 +1182,19 @@ var128 = NEW_nitc__Start(&type_nitc__Start);
 }
 var_node = var128;
 {
-{ /* Inline parser_nodes#ANode#parent= (var_node2,var_node) on <var_node2:Token(EOF)> */
+{ /* Inline parser_nodes$ANode$parent= (var_node2,var_node) on <var_node2:Token(EOF)> */
 var_node2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = var_node; /* _parent on <var_node2:Token(EOF)> */
 RET_LABEL129:(void)0;
 }
 }
 var130 = NEW_nitc__parser_work__ComputeProdLocationVisitor(&type_nitc__parser_work__ComputeProdLocationVisitor);
 {
-{ /* Inline lexer_work#Lexer#file (var_lexer) on <var_lexer:Lexer> */
+{ /* Inline lexer_work$Lexer$file (var_lexer) on <var_lexer:Lexer> */
 var133 = var_lexer->attrs[COLOR_nitc__lexer_work__Lexer___file].val; /* _file on <var_lexer:Lexer> */
 if (unlikely(var133 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__lexer_work, 90);
 fatal_exit(1);
@@ -1166,7 +1204,7 @@ RET_LABEL132:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#SourceFile#first_token (var131) on <var131:SourceFile> */
+{ /* Inline parser_nodes$SourceFile$first_token (var131) on <var131:SourceFile> */
 var136 = var131->attrs[COLOR_nitc__parser_nodes__SourceFile___first_token].val; /* _first_token on <var131:SourceFile> */
 var134 = var136;
 RET_LABEL135:(void)0;
@@ -1179,13 +1217,13 @@ RET_LABEL135:(void)0;
 ((void(*)(val* self))(var130->class->vft[COLOR_core__kernel__Object__init]))(var130); /* init on <var130:ComputeProdLocationVisitor>*/
 }
 {
-nitc___nitc__Visitor___enter_visit(var130, var_node); /* Direct call parser_nodes#Visitor#enter_visit on <var130:ComputeProdLocationVisitor>*/
+nitc___nitc__Visitor___enter_visit(var130, var_node); /* Direct call parser_nodes$Visitor$enter_visit on <var130:ComputeProdLocationVisitor>*/
 }
 var = var_node;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Int#== (var_action_type,3l) on <var_action_type:Int> */
+{ /* Inline kernel$Int$== (var_action_type,3l) on <var_action_type:Int> */
 var139 = var_action_type == 3l;
 var137 = var139;
 goto RET_LABEL138;
@@ -1208,65 +1246,76 @@ goto BREAK_label143;
 BREAK_label143: (void)0;
 var144 = NEW_nitc__AParserError(&type_nitc__AParserError);
 if (unlikely(varonce==NULL)) {
-var145 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
+var145 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
 if (likely(varonce146!=NULL)) {
 var147 = varonce146;
 } else {
 var148 = "Syntax Error: unexpected ";
-var149 = core__flat___NativeString___to_s_full(var148, 25l, 25l);
+var150 = (val*)(25l<<2|1);
+var151 = (val*)(25l<<2|1);
+var152 = (val*)((long)(0)<<2|3);
+var153 = (val*)((long)(0)<<2|3);
+var149 = core__flat___CString___to_s_unsafe(var148, var150, var151, var152, var153);
 var147 = var149;
 varonce146 = var147;
 }
 ((struct instance_core__NativeArray*)var145)->values[0]=var147;
-if (likely(varonce150!=NULL)) {
-var151 = varonce150;
+if (likely(varonce154!=NULL)) {
+var155 = varonce154;
 } else {
-var152 = ".";
-var153 = core__flat___NativeString___to_s_full(var152, 1l, 1l);
-var151 = var153;
-varonce150 = var151;
+var156 = ".";
+var158 = (val*)(1l<<2|1);
+var159 = (val*)(1l<<2|1);
+var160 = (val*)((long)(0)<<2|3);
+var161 = (val*)((long)(0)<<2|3);
+var157 = core__flat___CString___to_s_unsafe(var156, var158, var159, var160, var161);
+var155 = var157;
+varonce154 = var155;
 }
-((struct instance_core__NativeArray*)var145)->values[2]=var151;
+((struct instance_core__NativeArray*)var145)->values[2]=var155;
 } else {
 var145 = varonce;
 varonce = NULL;
 }
 {
-var154 = ((val*(*)(val* self))(var_token->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_token); /* to_s on <var_token:Token>*/
+var162 = ((val*(*)(val* self))(var_token->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_token); /* to_s on <var_token:Token>*/
 }
-((struct instance_core__NativeArray*)var145)->values[1]=var154;
+((struct instance_core__NativeArray*)var145)->values[1]=var162;
 {
-var155 = ((val*(*)(val* self))(var145->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var145); /* native_to_s on <var145:NativeArray[String]>*/
+var163 = ((val*(*)(val* self))(var145->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var145); /* native_to_s on <var145:NativeArray[String]>*/
 }
 varonce = var145;
 {
-{ /* Inline parser_nodes#ANode#location (var_token) on <var_token:Token> */
-var158 = var_token->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_token:Token> */
-if (unlikely(var158 == NULL)) {
+{ /* Inline parser_nodes$ANode$location (var_token) on <var_token:Token> */
+var166 = var_token->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_token:Token> */
+if (unlikely(var166 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
 fatal_exit(1);
 }
-var156 = var158;
-RET_LABEL157:(void)0;
+var164 = var166;
+RET_LABEL165:(void)0;
 }
 }
 {
-nitc__lexer_work___AParserError___init_parser_error(var144, var155, var156, var_token); /* Direct call lexer_work#AParserError#init_parser_error on <var144:AParserError>*/
+nitc__lexer_work___AParserError___init_parser_error(var144, var163, var164, var_token); /* Direct call lexer_work$AParserError$init_parser_error on <var144:AParserError>*/
 }
-var_node2159 = var144;
-var160 = NEW_nitc__Start(&type_nitc__Start);
+var_node2167 = var144;
+var168 = NEW_nitc__Start(&type_nitc__Start);
 {
-((void(*)(val* self, val* p0))(var160->class->vft[COLOR_nitc__parser_nodes__Start__n_base_61d]))(var160, ((val*)NULL)); /* n_base= on <var160:Start>*/
+((void(*)(val* self, val* p0))(var168->class->vft[COLOR_nitc__parser_nodes__Start__n_base_61d]))(var168, ((val*)NULL)); /* n_base= on <var168:Start>*/
 }
 {
-((void(*)(val* self, val* p0))(var160->class->vft[COLOR_nitc__parser_nodes__Start__n_eof_61d]))(var160, var_node2159); /* n_eof= on <var160:Start>*/
+((void(*)(val* self, val* p0))(var168->class->vft[COLOR_nitc__parser_nodes__Start__n_eof_61d]))(var168, var_node2167); /* n_eof= on <var168:Start>*/
 }
 {
-((void(*)(val* self))(var160->class->vft[COLOR_core__kernel__Object__init]))(var160); /* init on <var160:Start>*/
+((void(*)(val* self))(var168->class->vft[COLOR_core__kernel__Object__init]))(var168); /* init on <var168:Start>*/
 }
-var_node161 = var160;
-var = var_node161;
+var_node169 = var168;
+var = var_node169;
 goto RET_LABEL;
 } else {
 }
@@ -1277,12 +1326,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#Parser#reduce_table= for (self: Parser, Array[ReduceAction]) */
+/* method parser_work$Parser$reduce_table= for (self: Parser, Array[ReduceAction]) */
 void nitc___nitc__Parser___reduce_table_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val = p0; /* _reduce_table on <self:Parser> */
 RET_LABEL:;
 }
-/* method parser_work#Prod#collect_text for (self: Prod): String */
+/* method parser_work$Prod$collect_text for (self: Prod): String */
 val* nitc__parser_work___Prod___collect_text(val* self) {
 val* var /* : String */;
 val* var1 /* : TextCollectorVisitor */;
@@ -1291,28 +1340,35 @@ val* var3 /* : String */;
 val* var5 /* : String */;
 static val* varonce;
 val* var6 /* : String */;
-char* var7 /* : NativeString */;
+char* var7 /* : CString */;
 val* var8 /* : String */;
-short int var9 /* : Bool */;
+val* var9 /* : nullable Int */;
+val* var10 /* : nullable Int */;
+val* var11 /* : nullable Bool */;
+val* var12 /* : nullable Bool */;
+short int var13 /* : Bool */;
 val* var_other /* var other: nullable Object */;
-short int var11 /* : Bool */;
-short int var12 /* : Bool */;
-val* var13 /* : String */;
-val* var15 /* : String */;
+short int var15 /* : Bool */;
+short int var16 /* : Bool */;
+val* var17 /* : String */;
+val* var19 /* : String */;
 var1 = NEW_nitc__parser_work__TextCollectorVisitor(&type_nitc__parser_work__TextCollectorVisitor);
 {
-{ /* Inline kernel#Object#init (var1) on <var1:TextCollectorVisitor> */
+{ /* Inline kernel$Object$init (var1) on <var1:TextCollectorVisitor> */
 RET_LABEL2:(void)0;
 }
 }
 var_v = var1;
 {
-nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TextCollectorVisitor>*/
+nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:TextCollectorVisitor>*/
 }
 {
-{ /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
+{ /* Inline parser_work$TextCollectorVisitor$text (var_v) on <var_v:TextCollectorVisitor> */
 var5 = var_v->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
 if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
 fatal_exit(1);
@@ -1325,45 +1381,55 @@ if (likely(varonce!=NULL)) {
 var6 = varonce;
 } else {
 var7 = "";
-var8 = core__flat___NativeString___to_s_full(var7, 0l, 0l);
+var9 = (val*)(0l<<2|1);
+var10 = (val*)(0l<<2|1);
+var11 = (val*)((long)(0)<<2|3);
+var12 = (val*)((long)(0)<<2|3);
+var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
 var6 = var8;
 varonce = var6;
 }
 {
-{ /* Inline kernel#Object#!= (var3,var6) on <var3:String> */
+{ /* Inline kernel$Object$!= (var3,var6) on <var3:String> */
 var_other = var6;
 {
-var11 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var_other); /* == on <var3:String>*/
+var15 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var_other); /* == on <var3:String>*/
 }
-var12 = !var11;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var16 = !var15;
+var13 = var16;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
 }
 }
-if (unlikely(!var9)) {
+if (unlikely(!var13)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 171);
 fatal_exit(1);
 }
 {
-{ /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
-var15 = var_v->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
-if (unlikely(var15 == NULL)) {
+{ /* Inline parser_work$TextCollectorVisitor$text (var_v) on <var_v:TextCollectorVisitor> */
+var19 = var_v->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
+if (unlikely(var19 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
 fatal_exit(1);
 }
-var13 = var15;
-RET_LABEL14:(void)0;
+var17 = var19;
+RET_LABEL18:(void)0;
 }
 }
-var = var13;
+var = var17;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#ComputeProdLocationVisitor#token for (self: ComputeProdLocationVisitor): nullable Token */
+/* method parser_work$ComputeProdLocationVisitor$token for (self: ComputeProdLocationVisitor): nullable Token */
 val* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token(val* self) {
 val* var /* : nullable Token */;
 val* var1 /* : nullable Token */;
@@ -1372,12 +1438,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#ComputeProdLocationVisitor#token= for (self: ComputeProdLocationVisitor, nullable Token) */
+/* method parser_work$ComputeProdLocationVisitor$token= for (self: ComputeProdLocationVisitor, nullable Token) */
 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val = p0; /* _token on <self:ComputeProdLocationVisitor> */
 RET_LABEL:;
 }
-/* method parser_work#ComputeProdLocationVisitor#last_token for (self: ComputeProdLocationVisitor): nullable Token */
+/* method parser_work$ComputeProdLocationVisitor$last_token for (self: ComputeProdLocationVisitor): nullable Token */
 val* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___last_token(val* self) {
 val* var /* : nullable Token */;
 val* var1 /* : nullable Token */;
@@ -1386,7 +1452,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
+/* method parser_work$ComputeProdLocationVisitor$visit for (self: ComputeProdLocationVisitor, ANode) */
 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
 val* var_n /* var n: ANode */;
 short int var /* : Bool */;
@@ -1550,7 +1616,7 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline parser_work#ComputeProdLocationVisitor#token (self) on <self:ComputeProdLocationVisitor> */
+{ /* Inline parser_work$ComputeProdLocationVisitor$token (self) on <self:ComputeProdLocationVisitor> */
 var5 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val; /* _token on <self:ComputeProdLocationVisitor> */
 var3 = var5;
 RET_LABEL4:(void)0;
@@ -1558,7 +1624,7 @@ RET_LABEL4:(void)0;
 }
 var_cursor = var3;
 {
-{ /* Inline kernel#Object#!= (var_n,var_cursor) on <var_n:ANode(Token)> */
+{ /* Inline kernel$Object$!= (var_n,var_cursor) on <var_n:ANode(Token)> */
 var_other = var_cursor;
 {
 var8 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on <var_n:ANode(Token)>*/
@@ -1571,7 +1637,7 @@ RET_LABEL7:(void)0;
 }
 if (var6){
 {
-{ /* Inline parser_work#ComputeProdLocationVisitor#last_token (self) on <self:ComputeProdLocationVisitor> */
+{ /* Inline parser_work$ComputeProdLocationVisitor$last_token (self) on <self:ComputeProdLocationVisitor> */
 var12 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val; /* _last_token on <self:ComputeProdLocationVisitor> */
 var10 = var12;
 RET_LABEL11:(void)0;
@@ -1584,7 +1650,7 @@ var13 = 0; /* is null */
 var13 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_lt,((val*)NULL)) on <var_lt:nullable Token> */
+{ /* Inline kernel$Object$!= (var_lt,((val*)NULL)) on <var_lt:nullable Token> */
 var_other = ((val*)NULL);
 {
 var16 = ((short int(*)(val* self, val* p0))(var_lt->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_lt, var_other); /* == on <var_lt:nullable Token(Token)>*/
@@ -1598,11 +1664,14 @@ var13 = var14;
 }
 if (var13){
 {
-{ /* Inline parser_nodes#ANode#location (var_lt) on <var_lt:nullable Token(Token)> */
+{ /* Inline parser_nodes$ANode$location (var_lt) on <var_lt:nullable Token(Token)> */
 var20 = var_lt->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_lt:nullable Token(Token)> */
 if (unlikely(var20 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
 fatal_exit(1);
 }
 var18 = var20;
@@ -1610,7 +1679,7 @@ RET_LABEL19:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_end (var18) on <var18:Location> */
+{ /* Inline location$Location$line_end (var18) on <var18:Location> */
 var23 = var18->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var18:Location> */
 var21 = var23;
 RET_LABEL22:(void)0;
@@ -1624,7 +1693,7 @@ var26 = 0; /* is null */
 var26 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
+{ /* Inline kernel$Object$!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
 var_other = ((val*)NULL);
 {
 var29 = ((short int(*)(val* self, val* p0))(var_cursor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cursor, var_other); /* == on <var_cursor:nullable Token(Token)>*/
@@ -1639,7 +1708,7 @@ var26 = var27;
 var_ = var26;
 if (var26){
 {
-{ /* Inline kernel#Object#!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
+{ /* Inline kernel$Object$!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
 var_other = var_n;
 {
 var33 = ((short int(*)(val* self, val* p0))(var_cursor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cursor, var_other); /* == on <var_cursor:nullable Token(Token)>*/
@@ -1657,11 +1726,14 @@ var25 = var_;
 var_35 = var25;
 if (var25){
 {
-{ /* Inline parser_nodes#ANode#location (var_cursor) on <var_cursor:nullable Token(Token)> */
+{ /* Inline parser_nodes$ANode$location (var_cursor) on <var_cursor:nullable Token(Token)> */
 var38 = var_cursor->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_cursor:nullable Token(Token)> */
 if (unlikely(var38 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
 fatal_exit(1);
 }
 var36 = var38;
@@ -1669,14 +1741,14 @@ RET_LABEL37:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_start (var36) on <var36:Location> */
+{ /* Inline location$Location$line_start (var36) on <var36:Location> */
 var41 = var36->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var36:Location> */
 var39 = var41;
 RET_LABEL40:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var_ltl,var39) on <var_ltl:Int> */
+{ /* Inline kernel$Int$== (var_ltl,var39) on <var_ltl:Int> */
 var44 = var_ltl == var39;
 var42 = var44;
 goto RET_LABEL43;
@@ -1689,7 +1761,7 @@ var24 = var_35;
 }
 if (var24){
 {
-{ /* Inline parser_nodes#Token#is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
+{ /* Inline parser_nodes$Token$is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
 var_cursor->attrs[COLOR_nitc__parser_nodes__Token___is_loose].s = 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
 RET_LABEL45:(void)0;
 }
@@ -1698,10 +1770,10 @@ RET_LABEL45:(void)0;
 var46 = nitc___nitc__Token___next_looses(var_lt);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var46, var_cursor); /* Direct call array#Array#add on <var46:Array[Token]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var46, var_cursor); /* Direct call array$Array$add on <var46:Array[Token]>*/
 }
 {
-{ /* Inline parser_nodes#Token#next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
+{ /* Inline parser_nodes$Token$next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
 var49 = var_cursor->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_cursor:nullable Token(Token)> */
 var47 = var49;
 RET_LABEL48:(void)0;
@@ -1722,7 +1794,7 @@ var51 = 0; /* is null */
 var51 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
+{ /* Inline kernel$Object$!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
 var_other = ((val*)NULL);
 {
 var54 = ((short int(*)(val* self, val* p0))(var_cursor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cursor, var_other); /* == on <var_cursor:nullable Token(Token)>*/
@@ -1737,7 +1809,7 @@ var51 = var52;
 var_56 = var51;
 if (var51){
 {
-{ /* Inline kernel#Object#!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
+{ /* Inline kernel$Object$!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
 var_other = var_n;
 {
 var59 = ((short int(*)(val* self, val* p0))(var_cursor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cursor, var_other); /* == on <var_cursor:nullable Token(Token)>*/
@@ -1754,7 +1826,7 @@ var50 = var_56;
 }
 if (var50){
 {
-{ /* Inline parser_nodes#Token#is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
+{ /* Inline parser_nodes$Token$is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
 var_cursor->attrs[COLOR_nitc__parser_nodes__Token___is_loose].s = 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
 RET_LABEL61:(void)0;
 }
@@ -1763,10 +1835,10 @@ RET_LABEL61:(void)0;
 var62 = nitc___nitc__Token___prev_looses(var_n);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var62, var_cursor); /* Direct call array#Array#add on <var62:Array[Token]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var62, var_cursor); /* Direct call array$Array$add on <var62:Array[Token]>*/
 }
 {
-{ /* Inline parser_nodes#Token#next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
+{ /* Inline parser_nodes$Token$next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
 var65 = var_cursor->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_cursor:nullable Token(Token)> */
 var63 = var65;
 RET_LABEL64:(void)0;
@@ -1781,20 +1853,23 @@ BREAK_label66: (void)0;
 } else {
 }
 {
-{ /* Inline parser_nodes#Token#next_token (var_n) on <var_n:ANode(Token)> */
+{ /* Inline parser_nodes$Token$next_token (var_n) on <var_n:ANode(Token)> */
 var69 = var_n->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_n:ANode(Token)> */
 var67 = var69;
 RET_LABEL68:(void)0;
 }
 }
 {
-{ /* Inline parser_work#ComputeProdLocationVisitor#token= (self,var67) on <self:ComputeProdLocationVisitor> */
+{ /* Inline parser_work$ComputeProdLocationVisitor$token= (self,var67) on <self:ComputeProdLocationVisitor> */
 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val = var67; /* _token on <self:ComputeProdLocationVisitor> */
 RET_LABEL70:(void)0;
 }
 }
 var71 = var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_n:ANode(Token)> */
 if (unlikely(var71 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 227);
 fatal_exit(1);
@@ -1803,6 +1878,9 @@ var_loc = var71;
 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val = var_n; /* _last_token on <self:ComputeProdLocationVisitor> */
 var72 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
 if (unlikely(var72 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 231);
 fatal_exit(1);
@@ -1814,6 +1892,9 @@ var74 = !var73;
 if (var74){
 var75 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
 if (unlikely(var75 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 232);
 fatal_exit(1);
@@ -1846,17 +1927,23 @@ BREAK_label80: (void)0;
 }
 var82 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
 if (unlikely(var82 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 235);
 fatal_exit(1);
 }
 {
-core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var82); /* Direct call array#AbstractArray#clear on <var82:Array[Prod]>*/
+core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var82); /* Direct call array$AbstractArray$clear on <var82:Array[Prod]>*/
 }
 } else {
 }
 var83 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var83 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 239);
 fatal_exit(1);
@@ -1868,35 +1955,35 @@ var85 = !var84;
 if (var85){
 var86 = NEW_nitc__Location(&type_nitc__Location);
 {
-{ /* Inline location#Location#file (var_loc) on <var_loc:Location> */
+{ /* Inline location$Location$file (var_loc) on <var_loc:Location> */
 var89 = var_loc->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_loc:Location> */
 var87 = var89;
 RET_LABEL88:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
+{ /* Inline location$Location$line_start (var_loc) on <var_loc:Location> */
 var92 = var_loc->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
 var90 = var92;
 RET_LABEL91:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
+{ /* Inline location$Location$line_start (var_loc) on <var_loc:Location> */
 var95 = var_loc->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
 var93 = var95;
 RET_LABEL94:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
+{ /* Inline location$Location$column_start (var_loc) on <var_loc:Location> */
 var98 = var_loc->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
 var96 = var98;
 RET_LABEL97:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
+{ /* Inline location$Location$column_start (var_loc) on <var_loc:Location> */
 var101 = var_loc->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
 var99 = var101;
 RET_LABEL100:(void)0;
@@ -1923,6 +2010,9 @@ RET_LABEL100:(void)0;
 var_loco = var86;
 var102 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var102 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 241);
 fatal_exit(1);
@@ -1945,7 +2035,7 @@ var108 = ((val*(*)(val* self))((((long)var_105&3)?class_info[((long)var_105&3)]:
 }
 var_no109 = var108;
 {
-{ /* Inline parser_nodes#ANode#location= (var_no109,var_loco) on <var_no109:Prod> */
+{ /* Inline parser_nodes$ANode$location= (var_no109,var_loco) on <var_no109:Prod> */
 var_no109->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_loco; /* _location on <var_no109:Prod> */
 RET_LABEL110:(void)0;
 }
@@ -1960,12 +2050,15 @@ BREAK_label107: (void)0;
 }
 var111 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var111 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 244);
 fatal_exit(1);
 }
 {
-core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var111); /* Direct call array#AbstractArray#clear on <var111:Array[Prod]>*/
+core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var111); /* Direct call array$AbstractArray$clear on <var111:Array[Prod]>*/
 }
 } else {
 }
@@ -1979,18 +2072,24 @@ var112 = 0;
 var112 = var_n->type->type_table[cltype113] == idtype114;
 }
 if (unlikely(!var112)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 247);
 fatal_exit(1);
 }
 var115 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
 if (unlikely(var115 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 248);
 fatal_exit(1);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var115, var_n); /* Direct call array#Array#add on <var115:Array[Prod]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var115, var_n); /* Direct call array$Array$add on <var115:Array[Prod]>*/
 }
 {
 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on <var_n:ANode(Prod)>*/
@@ -2003,7 +2102,7 @@ var117 = 0; /* is null */
 var117 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var_startl,((val*)NULL)) on <var_startl:nullable Location> */
+{ /* Inline kernel$Object$!= (var_startl,((val*)NULL)) on <var_startl:nullable Location> */
 var_other = ((val*)NULL);
 {
 var120 = ((short int(*)(val* self, val* p0))(var_startl->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_startl, var_other); /* == on <var_startl:nullable Location(Location)>*/
@@ -2018,20 +2117,29 @@ var117 = var118;
 if (var117){
 var122 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val; /* _last_token on <self:ComputeProdLocationVisitor> */
 if (var122 == NULL) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 255);
 fatal_exit(1);
 } else {
-{ /* Inline parser_nodes#ANode#location (var122) on <var122:nullable Token> */
+{ /* Inline parser_nodes$ANode$location (var122) on <var122:nullable Token> */
 if (unlikely(var122 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
 fatal_exit(1);
 }
 var125 = var122->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var122:nullable Token> */
 if (unlikely(var125 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
 fatal_exit(1);
 }
 var123 = var125;
@@ -2044,7 +2152,7 @@ var126 = nitc___nitc__Location___core__kernel__Object___61d_61d(var_startl, var_
 }
 if (var126){
 {
-{ /* Inline parser_nodes#ANode#location= (var_n,var_startl) on <var_n:ANode(Prod)> */
+{ /* Inline parser_nodes$ANode$location= (var_n,var_startl) on <var_n:ANode(Prod)> */
 var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_startl; /* _location on <var_n:ANode(Prod)> */
 RET_LABEL127:(void)0;
 }
@@ -2052,35 +2160,35 @@ RET_LABEL127:(void)0;
 } else {
 var128 = NEW_nitc__Location(&type_nitc__Location);
 {
-{ /* Inline location#Location#file (var_startl) on <var_startl:nullable Location(Location)> */
+{ /* Inline location$Location$file (var_startl) on <var_startl:nullable Location(Location)> */
 var131 = var_startl->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_startl:nullable Location(Location)> */
 var129 = var131;
 RET_LABEL130:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_start (var_startl) on <var_startl:nullable Location(Location)> */
+{ /* Inline location$Location$line_start (var_startl) on <var_startl:nullable Location(Location)> */
 var134 = var_startl->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_startl:nullable Location(Location)> */
 var132 = var134;
 RET_LABEL133:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
 var137 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
 var135 = var137;
 RET_LABEL136:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_start (var_startl) on <var_startl:nullable Location(Location)> */
+{ /* Inline location$Location$column_start (var_startl) on <var_startl:nullable Location(Location)> */
 var140 = var_startl->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_startl:nullable Location(Location)> */
 var138 = var140;
 RET_LABEL139:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
 var143 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
 var141 = var143;
 RET_LABEL142:(void)0;
@@ -2105,7 +2213,7 @@ RET_LABEL142:(void)0;
 ((void(*)(val* self))(var128->class->vft[COLOR_core__kernel__Object__init]))(var128); /* init on <var128:Location>*/
 }
 {
-{ /* Inline parser_nodes#ANode#location= (var_n,var128) on <var_n:ANode(Prod)> */
+{ /* Inline parser_nodes$ANode$location= (var_n,var128) on <var_n:ANode(Prod)> */
 var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var128; /* _location on <var_n:ANode(Prod)> */
 RET_LABEL144:(void)0;
 }
@@ -2113,6 +2221,9 @@ RET_LABEL144:(void)0;
 }
 var145 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var145 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 263);
 fatal_exit(1);
@@ -2124,35 +2235,35 @@ var147 = !var146;
 if (var147){
 var148 = NEW_nitc__Location(&type_nitc__Location);
 {
-{ /* Inline location#Location#file (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$file (var_endl) on <var_endl:Location> */
 var151 = var_endl->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_endl:Location> */
 var149 = var151;
 RET_LABEL150:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
 var154 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
 var152 = var154;
 RET_LABEL153:(void)0;
 }
 }
 {
-{ /* Inline location#Location#line_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
 var157 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
 var155 = var157;
 RET_LABEL156:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
 var160 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
 var158 = var160;
 RET_LABEL159:(void)0;
 }
 }
 {
-{ /* Inline location#Location#column_end (var_endl) on <var_endl:Location> */
+{ /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
 var163 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
 var161 = var163;
 RET_LABEL162:(void)0;
@@ -2179,6 +2290,9 @@ RET_LABEL162:(void)0;
 var_loc164 = var148;
 var165 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var165 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 265);
 fatal_exit(1);
@@ -2201,7 +2315,7 @@ var171 = ((val*(*)(val* self))((((long)var_168&3)?class_info[((long)var_168&3)]:
 }
 var_no172 = var171;
 {
-{ /* Inline parser_nodes#ANode#location= (var_no172,var_loc164) on <var_no172:Prod> */
+{ /* Inline parser_nodes$ANode$location= (var_no172,var_loc164) on <var_no172:Prod> */
 var_no172->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_loc164; /* _location on <var_no172:Prod> */
 RET_LABEL173:(void)0;
 }
@@ -2216,42 +2330,51 @@ BREAK_label170: (void)0;
 }
 var174 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var174 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 269);
 fatal_exit(1);
 }
 {
-core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var174); /* Direct call array#AbstractArray#clear on <var174:Array[Prod]>*/
+core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var174); /* Direct call array$AbstractArray$clear on <var174:Array[Prod]>*/
 }
 } else {
 }
 } else {
 var175 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
 if (unlikely(var175 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 273);
 fatal_exit(1);
 }
 {
-core___core__Array___core__abstract_collection__SimpleCollection__add(var175, var_n); /* Direct call array#Array#add on <var175:Array[Prod]>*/
+core___core__Array___core__abstract_collection__SimpleCollection__add(var175, var_n); /* Direct call array$Array$add on <var175:Array[Prod]>*/
 }
 }
 }
 RET_LABEL:;
 }
-/* method parser_work#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
+/* method parser_work$ComputeProdLocationVisitor$init for (self: ComputeProdLocationVisitor) */
 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init(val* self) {
 {
 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init]))(self); /* init on <self:ComputeProdLocationVisitor>*/
 }
 RET_LABEL:;
 }
-/* method parser_work#TextCollectorVisitor#text for (self: TextCollectorVisitor): String */
+/* method parser_work$TextCollectorVisitor$text for (self: TextCollectorVisitor): String */
 val* nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text(val* self) {
 val* var /* : String */;
 val* var1 /* : String */;
 var1 = self->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <self:TextCollectorVisitor> */
 if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
 fatal_exit(1);
@@ -2260,12 +2383,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#TextCollectorVisitor#text= for (self: TextCollectorVisitor, String) */
+/* method parser_work$TextCollectorVisitor$text= for (self: TextCollectorVisitor, String) */
 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text_61d(val* self, val* p0) {
 self->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val = p0; /* _text on <self:TextCollectorVisitor> */
 RET_LABEL:;
 }
-/* method parser_work#TextCollectorVisitor#visit for (self: TextCollectorVisitor, ANode) */
+/* method parser_work$TextCollectorVisitor$visit for (self: TextCollectorVisitor, ANode) */
 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
 val* var_n /* var n: ANode */;
 short int var /* : Bool */;
@@ -2275,7 +2398,7 @@ val* var_ /* var : TextCollectorVisitor */;
 val* var1 /* : String */;
 val* var3 /* : String */;
 val* var4 /* : String */;
-val* var5 /* : String */;
+val* var5 /* : Text */;
 var_n = p0;
 /* <var_n:ANode> isa Token */
 cltype = type_nitc__Token.color;
@@ -2288,9 +2411,12 @@ var = var_n->type->type_table[cltype] == idtype;
 if (var){
 var_ = self;
 {
-{ /* Inline parser_work#TextCollectorVisitor#text (var_) on <var_:TextCollectorVisitor> */
+{ /* Inline parser_work$TextCollectorVisitor$text (var_) on <var_:TextCollectorVisitor> */
 var3 = var_->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_:TextCollectorVisitor> */
 if (unlikely(var3 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
 fatal_exit(1);
@@ -2303,10 +2429,10 @@ RET_LABEL2:(void)0;
 var4 = nitc__lexer_work___Token___text(var_n);
 }
 {
-var5 = ((val*(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_text__String___43d]))(var1, var4); /* + on <var1:String>*/
+var5 = ((val*(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_text__Text___43d]))(var1, var4); /* + on <var1:String>*/
 }
 {
-{ /* Inline parser_work#TextCollectorVisitor#text= (var_,var5) on <var_:TextCollectorVisitor> */
+{ /* Inline parser_work$TextCollectorVisitor$text= (var_,var5) on <var_:TextCollectorVisitor> */
 var_->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val = var5; /* _text on <var_:TextCollectorVisitor> */
 RET_LABEL6:(void)0;
 }
@@ -2318,7 +2444,7 @@ RET_LABEL6:(void)0;
 }
 RET_LABEL:;
 }
-/* method parser_work#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
+/* method parser_work$ReduceAction$concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
 val* nitc__parser_work___nitc__parser_work__ReduceAction___concat(val* self, val* p0, val* p1) {
 val* var /* : Array[Object] */;
 val* var_l1 /* var l1: Array[Object] */;
@@ -2335,26 +2461,26 @@ goto RET_LABEL;
 } else {
 }
 {
-core___core__Sequence___append(var_l1, var_l2); /* Direct call abstract_collection#Sequence#append on <var_l1:Array[Object]>*/
+core___core__Sequence___append(var_l1, var_l2); /* Direct call abstract_collection$Sequence$append on <var_l1:Array[Object]>*/
 }
 var = var_l1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method parser_work#ReduceAction#goto= for (self: ReduceAction, Int) */
+/* method parser_work$ReduceAction$goto= for (self: ReduceAction, Int) */
 void nitc__parser_work___nitc__parser_work__ReduceAction___goto_61d(val* self, long p0) {
 self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l = p0; /* _goto on <self:ReduceAction> */
 RET_LABEL:;
 }
-/* method parser_work#ReduceAction#init for (self: ReduceAction) */
+/* method parser_work$ReduceAction$init for (self: ReduceAction) */
 void nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init(val* self) {
 {
 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init]))(self); /* init on <self:ReduceAction>*/
 }
 RET_LABEL:;
 }
-/* method parser_work#AExpr#as_id for (self: AExpr): nullable String */
+/* method parser_work$AExpr$as_id for (self: AExpr): nullable String */
 val* nitc__parser_work___AExpr___as_id(val* self) {
 val* var /* : nullable String */;
 short int var1 /* : Bool */;
@@ -2413,11 +2539,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:AExpr(ACallExpr)> */
+{ /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:AExpr(ACallExpr)> */
 var9 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AExpr(ACallExpr)> */
 if (unlikely(var9 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
 fatal_exit(1);
 }
 var7 = var9;
@@ -2439,11 +2568,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:AExpr(ACallExpr)> */
+{ /* Inline parser_nodes$ACallFormExpr$n_args (self) on <self:AExpr(ACallExpr)> */
 var16 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:AExpr(ACallExpr)> */
 if (unlikely(var16 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2380);
 fatal_exit(1);
 }
 var14 = var16;
@@ -2451,11 +2583,14 @@ RET_LABEL15:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AExprs#n_exprs (var14) on <var14:AExprs> */
+{ /* Inline parser_nodes$AExprs$n_exprs (var14) on <var14:AExprs> */
 var19 = var14->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var14:AExprs> */
 if (unlikely(var19 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
 fatal_exit(1);
 }
 var17 = var19;
@@ -2472,11 +2607,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on <self:AExpr(ACallExpr)> */
+{ /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:AExpr(ACallExpr)> */
 var24 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:AExpr(ACallExpr)> */
 if (unlikely(var24 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
 fatal_exit(1);
 }
 var22 = var24;
@@ -2484,11 +2622,14 @@ RET_LABEL23:(void)0;
 }
 }
 {
-{ /* Inline parser_nodes#AQid#n_id (var22) on <var22:AQid> */
+{ /* Inline parser_nodes$AQid$n_id (var22) on <var22:AQid> */
 var27 = var22->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var22:AQid> */
 if (unlikely(var27 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
 fatal_exit(1);
 }
 var25 = var27;