Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__parser_work.sep.1.c
1 #include "nitc__parser_work.sep.0.h"
2 /* method parser_work$State$state= for (self: State, Int) */
3 void nitc__parser_work___nitc__parser_work__State___state_61d(val* self, long p0) {
4 self->attrs[COLOR_nitc__parser_work__State___state].l = p0; /* _state on <self:State> */
5 RET_LABEL:;
6 }
7 /* method parser_work$State$nodes= for (self: State, nullable Object) */
8 void nitc__parser_work___nitc__parser_work__State___nodes_61d(val* self, val* p0) {
9 self->attrs[COLOR_nitc__parser_work__State___nodes].val = p0; /* _nodes on <self:State> */
10 RET_LABEL:;
11 }
12 /* method parser_work$State$init for (self: State) */
13 void nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init(val* self) {
14 {
15 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__State___core__kernel__Object__init]))(self); /* init on <self:State>*/
16 }
17 RET_LABEL:;
18 }
19 /* method parser_work$Parser$lexer= for (self: Parser, Lexer) */
20 void nitc___nitc__Parser___lexer_61d(val* self, val* p0) {
21 self->attrs[COLOR_nitc__parser_work__Parser___lexer].val = p0; /* _lexer on <self:Parser> */
22 RET_LABEL:;
23 }
24 /* method parser_work$Parser$init for (self: Parser) */
25 void nitc___nitc__Parser___core__kernel__Object__init(val* self) {
26 static val* varonce;
27 static int varonce_guard;
28 val* var /* : Array[ReduceAction] */;
29 val* var1 /* : Array[ReduceAction] */;
30 {
31 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__Parser___core__kernel__Object__init]))(self); /* init on <self:Parser>*/
32 }
33 if (likely(varonce_guard)) {
34 var = varonce;
35 } else {
36 {
37 var1 = nitc__parser___Parser___build_reduce_table(self);
38 }
39 var = var1;
40 varonce = var;
41 varonce_guard = 1;
42 }
43 {
44 { /* Inline parser_work$Parser$reduce_table= (self,var) on <self:Parser> */
45 self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val = var; /* _reduce_table on <self:Parser> */
46 RET_LABEL2:(void)0;
47 }
48 }
49 RET_LABEL:;
50 }
51 /* method parser_work$Parser$go_to for (self: Parser, Int): Int */
52 long nitc___nitc__Parser___go_to(val* self, long p0) {
53 long var /* : Int */;
54 long var_index /* var index: Int */;
55 long var1 /* : Int */;
56 long var_state /* var state: Int */;
57 long var_low /* var low: Int */;
58 long var2 /* : Int */;
59 long var4 /* : Int for extern */;
60 long var5 /* : Int */;
61 short int var7 /* : Bool */;
62 int cltype;
63 int idtype;
64 const char* var_class_name;
65 long var8 /* : Int */;
66 long var_high /* var high: Int */;
67 short int var9 /* : Bool */;
68 short int var11 /* : Bool */;
69 int cltype12;
70 int idtype13;
71 const char* var_class_name14;
72 short int var15 /* : Bool */;
73 long var16 /* : Int */;
74 short int var18 /* : Bool */;
75 int cltype19;
76 int idtype20;
77 const char* var_class_name21;
78 long var22 /* : Int */;
79 long var23 /* : Int */;
80 short int var25 /* : Bool */;
81 int cltype26;
82 int idtype27;
83 const char* var_class_name28;
84 long var29 /* : Int */;
85 long var_middle /* var middle: Int */;
86 long var30 /* : Int */;
87 short int var32 /* : Bool */;
88 int cltype33;
89 int idtype34;
90 const char* var_class_name35;
91 long var36 /* : Int */;
92 long var37 /* : Int */;
93 short int var39 /* : Bool */;
94 int cltype40;
95 int idtype41;
96 const char* var_class_name42;
97 long var43 /* : Int */;
98 long var_subindex /* var subindex: Int */;
99 long var44 /* : Int */;
100 long var46 /* : Int for extern */;
101 long var_goal /* var goal: Int */;
102 short int var47 /* : Bool */;
103 short int var49 /* : Bool */;
104 int cltype50;
105 int idtype51;
106 const char* var_class_name52;
107 short int var53 /* : Bool */;
108 long var54 /* : Int */;
109 short int var56 /* : Bool */;
110 int cltype57;
111 int idtype58;
112 const char* var_class_name59;
113 long var60 /* : Int */;
114 short int var61 /* : Bool */;
115 short int var63 /* : Bool */;
116 int cltype64;
117 int idtype65;
118 const char* var_class_name66;
119 short int var67 /* : Bool */;
120 long var68 /* : Int */;
121 short int var70 /* : Bool */;
122 int cltype71;
123 int idtype72;
124 const char* var_class_name73;
125 long var74 /* : Int */;
126 long var75 /* : Int */;
127 short int var77 /* : Bool */;
128 int cltype78;
129 int idtype79;
130 const char* var_class_name80;
131 long var81 /* : Int */;
132 long var82 /* : Int */;
133 long var84 /* : Int for extern */;
134 long var85 /* : Int */;
135 long var87 /* : Int for extern */;
136 var_index = p0;
137 {
138 var1 = nitc___nitc__Parser___state(self);
139 }
140 var_state = var1;
141 var_low = 1l;
142 {
143 { /* Inline tables$TablesCapable$parser_goto (self,var_index,0l) on <self:Parser> */
144 var4 = parser_goto(self, var_index, 0l);
145 var2 = var4;
146 goto RET_LABEL3;
147 RET_LABEL3:(void)0;
148 }
149 }
150 {
151 { /* Inline kernel$Int$- (var2,1l) on <var2:Int> */
152 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
153 /* <1l:Int> isa OTHER */
154 var7 = 1; /* easy <1l:Int> isa OTHER*/
155 if (unlikely(!var7)) {
156 var_class_name = type_core__Int.name;
157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
158 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
159 fatal_exit(1);
160 }
161 var8 = var2 - 1l;
162 var5 = var8;
163 goto RET_LABEL6;
164 RET_LABEL6:(void)0;
165 }
166 }
167 var_high = var5;
168 for(;;) {
169 {
170 { /* Inline kernel$Int$<= (var_low,var_high) on <var_low:Int> */
171 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
172 /* <var_high:Int> isa OTHER */
173 var11 = 1; /* easy <var_high:Int> isa OTHER*/
174 if (unlikely(!var11)) {
175 var_class_name14 = type_core__Int.name;
176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
177 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
178 fatal_exit(1);
179 }
180 var15 = var_low <= var_high;
181 var9 = var15;
182 goto RET_LABEL10;
183 RET_LABEL10:(void)0;
184 }
185 }
186 if (var9){
187 {
188 { /* Inline kernel$Int$+ (var_low,var_high) on <var_low:Int> */
189 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
190 /* <var_high:Int> isa OTHER */
191 var18 = 1; /* easy <var_high:Int> isa OTHER*/
192 if (unlikely(!var18)) {
193 var_class_name21 = type_core__Int.name;
194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
195 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
196 fatal_exit(1);
197 }
198 var22 = var_low + var_high;
199 var16 = var22;
200 goto RET_LABEL17;
201 RET_LABEL17:(void)0;
202 }
203 }
204 {
205 { /* Inline kernel$Int$/ (var16,2l) on <var16:Int> */
206 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
207 /* <2l:Int> isa OTHER */
208 var25 = 1; /* easy <2l:Int> isa OTHER*/
209 if (unlikely(!var25)) {
210 var_class_name28 = type_core__Int.name;
211 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
212 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
213 fatal_exit(1);
214 }
215 var29 = var16 / 2l;
216 var23 = var29;
217 goto RET_LABEL24;
218 RET_LABEL24:(void)0;
219 }
220 }
221 var_middle = var23;
222 {
223 { /* Inline kernel$Int$* (var_middle,2l) on <var_middle:Int> */
224 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
225 /* <2l:Int> isa OTHER */
226 var32 = 1; /* easy <2l:Int> isa OTHER*/
227 if (unlikely(!var32)) {
228 var_class_name35 = type_core__Int.name;
229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
231 fatal_exit(1);
232 }
233 var36 = var_middle * 2l;
234 var30 = var36;
235 goto RET_LABEL31;
236 RET_LABEL31:(void)0;
237 }
238 }
239 {
240 { /* Inline kernel$Int$+ (var30,1l) on <var30:Int> */
241 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
242 /* <1l:Int> isa OTHER */
243 var39 = 1; /* easy <1l:Int> isa OTHER*/
244 if (unlikely(!var39)) {
245 var_class_name42 = type_core__Int.name;
246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
247 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
248 fatal_exit(1);
249 }
250 var43 = var30 + 1l;
251 var37 = var43;
252 goto RET_LABEL38;
253 RET_LABEL38:(void)0;
254 }
255 }
256 var_subindex = var37;
257 {
258 { /* Inline tables$TablesCapable$parser_goto (self,var_index,var_subindex) on <self:Parser> */
259 var46 = parser_goto(self, var_index, var_subindex);
260 var44 = var46;
261 goto RET_LABEL45;
262 RET_LABEL45:(void)0;
263 }
264 }
265 var_goal = var44;
266 {
267 { /* Inline kernel$Int$< (var_state,var_goal) on <var_state:Int> */
268 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
269 /* <var_goal:Int> isa OTHER */
270 var49 = 1; /* easy <var_goal:Int> isa OTHER*/
271 if (unlikely(!var49)) {
272 var_class_name52 = type_core__Int.name;
273 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
274 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
275 fatal_exit(1);
276 }
277 var53 = var_state < var_goal;
278 var47 = var53;
279 goto RET_LABEL48;
280 RET_LABEL48:(void)0;
281 }
282 }
283 if (var47){
284 {
285 { /* Inline kernel$Int$- (var_middle,1l) on <var_middle:Int> */
286 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
287 /* <1l:Int> isa OTHER */
288 var56 = 1; /* easy <1l:Int> isa OTHER*/
289 if (unlikely(!var56)) {
290 var_class_name59 = type_core__Int.name;
291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
292 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
293 fatal_exit(1);
294 }
295 var60 = var_middle - 1l;
296 var54 = var60;
297 goto RET_LABEL55;
298 RET_LABEL55:(void)0;
299 }
300 }
301 var_high = var54;
302 } else {
303 {
304 { /* Inline kernel$Int$> (var_state,var_goal) on <var_state:Int> */
305 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
306 /* <var_goal:Int> isa OTHER */
307 var63 = 1; /* easy <var_goal:Int> isa OTHER*/
308 if (unlikely(!var63)) {
309 var_class_name66 = type_core__Int.name;
310 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
311 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
312 fatal_exit(1);
313 }
314 var67 = var_state > var_goal;
315 var61 = var67;
316 goto RET_LABEL62;
317 RET_LABEL62:(void)0;
318 }
319 }
320 if (var61){
321 {
322 { /* Inline kernel$Int$+ (var_middle,1l) on <var_middle:Int> */
323 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
324 /* <1l:Int> isa OTHER */
325 var70 = 1; /* easy <1l:Int> isa OTHER*/
326 if (unlikely(!var70)) {
327 var_class_name73 = type_core__Int.name;
328 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
329 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
330 fatal_exit(1);
331 }
332 var74 = var_middle + 1l;
333 var68 = var74;
334 goto RET_LABEL69;
335 RET_LABEL69:(void)0;
336 }
337 }
338 var_low = var68;
339 } else {
340 {
341 { /* Inline kernel$Int$+ (var_subindex,1l) on <var_subindex:Int> */
342 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
343 /* <1l:Int> isa OTHER */
344 var77 = 1; /* easy <1l:Int> isa OTHER*/
345 if (unlikely(!var77)) {
346 var_class_name80 = type_core__Int.name;
347 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
348 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
349 fatal_exit(1);
350 }
351 var81 = var_subindex + 1l;
352 var75 = var81;
353 goto RET_LABEL76;
354 RET_LABEL76:(void)0;
355 }
356 }
357 {
358 { /* Inline tables$TablesCapable$parser_goto (self,var_index,var75) on <self:Parser> */
359 var84 = parser_goto(self, var_index, var75);
360 var82 = var84;
361 goto RET_LABEL83;
362 RET_LABEL83:(void)0;
363 }
364 }
365 var = var82;
366 goto RET_LABEL;
367 }
368 }
369 } else {
370 goto BREAK_label;
371 }
372 }
373 BREAK_label: (void)0;
374 {
375 { /* Inline tables$TablesCapable$parser_goto (self,var_index,2l) on <self:Parser> */
376 var87 = parser_goto(self, var_index, 2l);
377 var85 = var87;
378 goto RET_LABEL86;
379 RET_LABEL86:(void)0;
380 }
381 }
382 var = var85;
383 goto RET_LABEL;
384 RET_LABEL:;
385 return var;
386 }
387 /* method parser_work$Parser$push for (self: Parser, Int, nullable Object) */
388 void nitc___nitc__Parser___push(val* self, long p0, val* p1) {
389 long var_numstate /* var numstate: Int */;
390 val* var_list_node /* var list_node: nullable Object */;
391 long var /* : Int */;
392 long var1 /* : Int */;
393 short int var3 /* : Bool */;
394 int cltype;
395 int idtype;
396 const char* var_class_name;
397 long var4 /* : Int */;
398 long var_pos /* var pos: Int */;
399 val* var5 /* : Array[State] */;
400 long var6 /* : Int */;
401 long var8 /* : Int */;
402 short int var9 /* : Bool */;
403 short int var11 /* : Bool */;
404 int cltype12;
405 int idtype13;
406 const char* var_class_name14;
407 short int var15 /* : Bool */;
408 val* var16 /* : Array[State] */;
409 val* var17 /* : nullable Object */;
410 val* var_state /* var state: State */;
411 val* var18 /* : Array[State] */;
412 val* var19 /* : State */;
413 var_numstate = p0;
414 var_list_node = p1;
415 var = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
416 {
417 { /* Inline kernel$Int$+ (var,1l) on <var:Int> */
418 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
419 /* <1l:Int> isa OTHER */
420 var3 = 1; /* easy <1l:Int> isa OTHER*/
421 if (unlikely(!var3)) {
422 var_class_name = type_core__Int.name;
423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
424 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
425 fatal_exit(1);
426 }
427 var4 = var + 1l;
428 var1 = var4;
429 goto RET_LABEL2;
430 RET_LABEL2:(void)0;
431 }
432 }
433 var_pos = var1;
434 self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l = var_pos; /* _stack_pos on <self:Parser> */
435 var5 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
436 if (unlikely(var5 == NULL)) {
437 if(catchStack.cursor >= 0){
438 longjmp(catchStack.envs[catchStack.cursor], 1);
439 }
440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 75);
442 fatal_exit(1);
443 }
444 {
445 { /* Inline array$AbstractArrayRead$length (var5) on <var5:Array[State]> */
446 var8 = var5->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var5:Array[State]> */
447 var6 = var8;
448 RET_LABEL7:(void)0;
449 }
450 }
451 {
452 { /* Inline kernel$Int$< (var_pos,var6) on <var_pos:Int> */
453 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
454 /* <var6:Int> isa OTHER */
455 var11 = 1; /* easy <var6:Int> isa OTHER*/
456 if (unlikely(!var11)) {
457 var_class_name14 = type_core__Int.name;
458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
459 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
460 fatal_exit(1);
461 }
462 var15 = var_pos < var6;
463 var9 = var15;
464 goto RET_LABEL10;
465 RET_LABEL10:(void)0;
466 }
467 }
468 if (var9){
469 var16 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
470 if (unlikely(var16 == NULL)) {
471 if(catchStack.cursor >= 0){
472 longjmp(catchStack.envs[catchStack.cursor], 1);
473 }
474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 76);
476 fatal_exit(1);
477 }
478 {
479 var17 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var16, var_pos);
480 }
481 var_state = var17;
482 var_state->attrs[COLOR_nitc__parser_work__State___state].l = var_numstate; /* _state on <var_state:State> */
483 var_state->attrs[COLOR_nitc__parser_work__State___nodes].val = var_list_node; /* _nodes on <var_state:State> */
484 } else {
485 var18 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
486 if (unlikely(var18 == NULL)) {
487 if(catchStack.cursor >= 0){
488 longjmp(catchStack.envs[catchStack.cursor], 1);
489 }
490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
491 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 80);
492 fatal_exit(1);
493 }
494 var19 = NEW_nitc__parser_work__State(&type_nitc__parser_work__State);
495 {
496 ((void(*)(val* self, long p0))(var19->class->vft[COLOR_nitc__parser_work__State__state_61d]))(var19, var_numstate); /* state= on <var19:State>*/
497 }
498 {
499 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__parser_work__State__nodes_61d]))(var19, var_list_node); /* nodes= on <var19:State>*/
500 }
501 {
502 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:State>*/
503 }
504 {
505 core___core__AbstractArray___core__abstract_collection__Sequence__push(var18, var19); /* Direct call array$AbstractArray$push on <var18:Array[State]>*/
506 }
507 }
508 RET_LABEL:;
509 }
510 /* method parser_work$Parser$state for (self: Parser): Int */
511 long nitc___nitc__Parser___state(val* self) {
512 long var /* : Int */;
513 val* var1 /* : Array[State] */;
514 long var2 /* : Int */;
515 val* var3 /* : nullable Object */;
516 long var4 /* : Int */;
517 var1 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
518 if (unlikely(var1 == NULL)) {
519 if(catchStack.cursor >= 0){
520 longjmp(catchStack.envs[catchStack.cursor], 1);
521 }
522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
523 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 87);
524 fatal_exit(1);
525 }
526 var2 = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
527 {
528 var3 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var1, var2);
529 }
530 var4 = var3->attrs[COLOR_nitc__parser_work__State___state].l; /* _state on <var3:nullable Object(State)> */
531 var = var4;
532 goto RET_LABEL;
533 RET_LABEL:;
534 return var;
535 }
536 /* method parser_work$Parser$pop for (self: Parser): nullable Object */
537 val* nitc___nitc__Parser___pop(val* self) {
538 val* var /* : nullable Object */;
539 val* var1 /* : Array[State] */;
540 long var2 /* : Int */;
541 val* var3 /* : nullable Object */;
542 val* var4 /* : nullable Object */;
543 val* var_res /* var res: nullable Object */;
544 long var5 /* : Int */;
545 long var6 /* : Int */;
546 short int var8 /* : Bool */;
547 int cltype;
548 int idtype;
549 const char* var_class_name;
550 long var9 /* : Int */;
551 var1 = self->attrs[COLOR_nitc__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
552 if (unlikely(var1 == NULL)) {
553 if(catchStack.cursor >= 0){
554 longjmp(catchStack.envs[catchStack.cursor], 1);
555 }
556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
557 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 93);
558 fatal_exit(1);
559 }
560 var2 = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
561 {
562 var3 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var1, var2);
563 }
564 var4 = var3->attrs[COLOR_nitc__parser_work__State___nodes].val; /* _nodes on <var3:nullable Object(State)> */
565 var_res = var4;
566 var5 = self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
567 {
568 { /* Inline kernel$Int$- (var5,1l) on <var5:Int> */
569 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
570 /* <1l:Int> isa OTHER */
571 var8 = 1; /* easy <1l:Int> isa OTHER*/
572 if (unlikely(!var8)) {
573 var_class_name = type_core__Int.name;
574 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
575 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
576 fatal_exit(1);
577 }
578 var9 = var5 - 1l;
579 var6 = var9;
580 goto RET_LABEL7;
581 RET_LABEL7:(void)0;
582 }
583 }
584 self->attrs[COLOR_nitc__parser_work__Parser___stack_pos].l = var6; /* _stack_pos on <self:Parser> */
585 var = var_res;
586 goto RET_LABEL;
587 RET_LABEL:;
588 return var;
589 }
590 /* method parser_work$Parser$parse for (self: Parser): Start */
591 val* nitc___nitc__Parser___parse(val* self) {
592 val* var /* : Start */;
593 val* var1 /* : Lexer */;
594 val* var_lexer /* var lexer: Lexer */;
595 val* var2 /* : Token */;
596 val* var_token /* var token: Token */;
597 short int var3 /* : Bool */;
598 int cltype;
599 int idtype;
600 val* var4 /* : Start */;
601 long var5 /* : Int */;
602 long var_state /* var state: Int */;
603 long var6 /* : Int */;
604 long var_index /* var index: Int */;
605 long var7 /* : Int */;
606 long var9 /* : Int for extern */;
607 long var_action_type /* var action_type: Int */;
608 long var10 /* : Int */;
609 long var12 /* : Int for extern */;
610 long var_action_value /* var action_value: Int */;
611 long var_low /* var low: Int */;
612 long var13 /* : Int */;
613 long var15 /* : Int for extern */;
614 long var16 /* : Int */;
615 short int var18 /* : Bool */;
616 int cltype19;
617 int idtype20;
618 const char* var_class_name;
619 long var21 /* : Int */;
620 long var_high /* var high: Int */;
621 short int var22 /* : Bool */;
622 short int var24 /* : Bool */;
623 int cltype25;
624 int idtype26;
625 const char* var_class_name27;
626 short int var28 /* : Bool */;
627 long var29 /* : Int */;
628 short int var31 /* : Bool */;
629 int cltype32;
630 int idtype33;
631 const char* var_class_name34;
632 long var35 /* : Int */;
633 long var36 /* : Int */;
634 short int var38 /* : Bool */;
635 int cltype39;
636 int idtype40;
637 const char* var_class_name41;
638 long var42 /* : Int */;
639 long var_middle /* var middle: Int */;
640 long var43 /* : Int */;
641 short int var45 /* : Bool */;
642 int cltype46;
643 int idtype47;
644 const char* var_class_name48;
645 long var49 /* : Int */;
646 long var50 /* : Int */;
647 short int var52 /* : Bool */;
648 int cltype53;
649 int idtype54;
650 const char* var_class_name55;
651 long var56 /* : Int */;
652 long var_subindex /* var subindex: Int */;
653 long var57 /* : Int */;
654 long var59 /* : Int for extern */;
655 long var_goal /* var goal: Int */;
656 short int var60 /* : Bool */;
657 short int var62 /* : Bool */;
658 int cltype63;
659 int idtype64;
660 const char* var_class_name65;
661 short int var66 /* : Bool */;
662 long var67 /* : Int */;
663 short int var69 /* : Bool */;
664 int cltype70;
665 int idtype71;
666 const char* var_class_name72;
667 long var73 /* : Int */;
668 short int var74 /* : Bool */;
669 short int var76 /* : Bool */;
670 int cltype77;
671 int idtype78;
672 const char* var_class_name79;
673 short int var80 /* : Bool */;
674 long var81 /* : Int */;
675 short int var83 /* : Bool */;
676 int cltype84;
677 int idtype85;
678 const char* var_class_name86;
679 long var87 /* : Int */;
680 long var88 /* : Int */;
681 short int var90 /* : Bool */;
682 int cltype91;
683 int idtype92;
684 const char* var_class_name93;
685 long var94 /* : Int */;
686 long var95 /* : Int */;
687 long var97 /* : Int for extern */;
688 long var98 /* : Int */;
689 short int var100 /* : Bool */;
690 int cltype101;
691 int idtype102;
692 const char* var_class_name103;
693 long var104 /* : Int */;
694 long var105 /* : Int */;
695 long var107 /* : Int for extern */;
696 short int var108 /* : Bool */;
697 short int var110 /* : Bool */;
698 val* var111 /* : Token */;
699 short int var112 /* : Bool */;
700 short int var114 /* : Bool */;
701 val* var115 /* : Array[ReduceAction] */;
702 val* var116 /* : nullable Object */;
703 short int var117 /* : Bool */;
704 short int var119 /* : Bool */;
705 val* var120 /* : Token */;
706 val* var_node2 /* var node2: Token */;
707 short int var121 /* : Bool */;
708 int cltype122;
709 int idtype123;
710 val* var124 /* : nullable Object */;
711 val* var_node1 /* var node1: nullable Object */;
712 short int var125 /* : Bool */;
713 int cltype126;
714 int idtype127;
715 val* var128 /* : Start */;
716 val* var_node /* var node: Start */;
717 val* var130 /* : ComputeProdLocationVisitor */;
718 val* var131 /* : SourceFile */;
719 val* var133 /* : SourceFile */;
720 val* var134 /* : nullable Token */;
721 val* var136 /* : nullable Token */;
722 short int var137 /* : Bool */;
723 short int var139 /* : Bool */;
724 short int var140 /* : Bool */;
725 short int var141 /* : Bool */;
726 val* var142 /* : Token */;
727 val* var144 /* : AParserError */;
728 val* var145 /* : NativeArray[String] */;
729 static val* varonce;
730 static val* varonce146;
731 val* var147 /* : String */;
732 char* var148 /* : CString */;
733 val* var149 /* : String */;
734 val* var150 /* : nullable Int */;
735 val* var151 /* : nullable Int */;
736 val* var152 /* : nullable Bool */;
737 val* var153 /* : nullable Bool */;
738 static val* varonce154;
739 val* var155 /* : String */;
740 char* var156 /* : CString */;
741 val* var157 /* : String */;
742 val* var158 /* : nullable Int */;
743 val* var159 /* : nullable Int */;
744 val* var160 /* : nullable Bool */;
745 val* var161 /* : nullable Bool */;
746 val* var162 /* : String */;
747 val* var163 /* : String */;
748 val* var164 /* : Location */;
749 val* var166 /* : Location */;
750 val* var_node2167 /* var node2: AParserError */;
751 val* var168 /* : Start */;
752 val* var_node169 /* var node: Start */;
753 {
754 nitc___nitc__Parser___push(self, 0l, ((val*)NULL)); /* Direct call parser_work$Parser$push on <self:Parser>*/
755 }
756 var1 = self->attrs[COLOR_nitc__parser_work__Parser___lexer].val; /* _lexer on <self:Parser> */
757 if (unlikely(var1 == NULL)) {
758 if(catchStack.cursor >= 0){
759 longjmp(catchStack.envs[catchStack.cursor], 1);
760 }
761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lexer");
762 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 103);
763 fatal_exit(1);
764 }
765 var_lexer = var1;
766 for(;;) {
767 {
768 var2 = nitc___nitc__Lexer___peek(var_lexer);
769 }
770 var_token = var2;
771 /* <var_token:Token> isa AError */
772 cltype = type_nitc__AError.color;
773 idtype = type_nitc__AError.id;
774 if(cltype >= var_token->type->table_size) {
775 var3 = 0;
776 } else {
777 var3 = var_token->type->type_table[cltype] == idtype;
778 }
779 if (var3){
780 var4 = NEW_nitc__Start(&type_nitc__Start);
781 {
782 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__parser_nodes__Start__n_base_61d]))(var4, ((val*)NULL)); /* n_base= on <var4:Start>*/
783 }
784 {
785 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__parser_nodes__Start__n_eof_61d]))(var4, var_token); /* n_eof= on <var4:Start>*/
786 }
787 {
788 ((void(*)(val* self))(var4->class->vft[COLOR_core__kernel__Object__init]))(var4); /* init on <var4:Start>*/
789 }
790 var = var4;
791 goto RET_LABEL;
792 } else {
793 }
794 {
795 var5 = nitc___nitc__Parser___state(self);
796 }
797 var_state = var5;
798 {
799 var6 = ((long(*)(val* self))(var_token->class->vft[COLOR_nitc__lexer_work__Token__parser_index]))(var_token); /* parser_index on <var_token:Token>*/
800 }
801 var_index = var6;
802 {
803 { /* Inline tables$TablesCapable$parser_action (self,var_state,2l) on <self:Parser> */
804 var9 = parser_action(self, var_state, 2l);
805 var7 = var9;
806 goto RET_LABEL8;
807 RET_LABEL8:(void)0;
808 }
809 }
810 var_action_type = var7;
811 {
812 { /* Inline tables$TablesCapable$parser_action (self,var_state,3l) on <self:Parser> */
813 var12 = parser_action(self, var_state, 3l);
814 var10 = var12;
815 goto RET_LABEL11;
816 RET_LABEL11:(void)0;
817 }
818 }
819 var_action_value = var10;
820 var_low = 1l;
821 {
822 { /* Inline tables$TablesCapable$parser_action (self,var_state,0l) on <self:Parser> */
823 var15 = parser_action(self, var_state, 0l);
824 var13 = var15;
825 goto RET_LABEL14;
826 RET_LABEL14:(void)0;
827 }
828 }
829 {
830 { /* Inline kernel$Int$- (var13,1l) on <var13:Int> */
831 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
832 /* <1l:Int> isa OTHER */
833 var18 = 1; /* easy <1l:Int> isa OTHER*/
834 if (unlikely(!var18)) {
835 var_class_name = type_core__Int.name;
836 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
837 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
838 fatal_exit(1);
839 }
840 var21 = var13 - 1l;
841 var16 = var21;
842 goto RET_LABEL17;
843 RET_LABEL17:(void)0;
844 }
845 }
846 var_high = var16;
847 for(;;) {
848 {
849 { /* Inline kernel$Int$<= (var_low,var_high) on <var_low:Int> */
850 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
851 /* <var_high:Int> isa OTHER */
852 var24 = 1; /* easy <var_high:Int> isa OTHER*/
853 if (unlikely(!var24)) {
854 var_class_name27 = type_core__Int.name;
855 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
856 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
857 fatal_exit(1);
858 }
859 var28 = var_low <= var_high;
860 var22 = var28;
861 goto RET_LABEL23;
862 RET_LABEL23:(void)0;
863 }
864 }
865 if (var22){
866 {
867 { /* Inline kernel$Int$+ (var_low,var_high) on <var_low:Int> */
868 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
869 /* <var_high:Int> isa OTHER */
870 var31 = 1; /* easy <var_high:Int> isa OTHER*/
871 if (unlikely(!var31)) {
872 var_class_name34 = type_core__Int.name;
873 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
874 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
875 fatal_exit(1);
876 }
877 var35 = var_low + var_high;
878 var29 = var35;
879 goto RET_LABEL30;
880 RET_LABEL30:(void)0;
881 }
882 }
883 {
884 { /* Inline kernel$Int$/ (var29,2l) on <var29:Int> */
885 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
886 /* <2l:Int> isa OTHER */
887 var38 = 1; /* easy <2l:Int> isa OTHER*/
888 if (unlikely(!var38)) {
889 var_class_name41 = type_core__Int.name;
890 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
891 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
892 fatal_exit(1);
893 }
894 var42 = var29 / 2l;
895 var36 = var42;
896 goto RET_LABEL37;
897 RET_LABEL37:(void)0;
898 }
899 }
900 var_middle = var36;
901 {
902 { /* Inline kernel$Int$* (var_middle,3l) on <var_middle:Int> */
903 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
904 /* <3l:Int> isa OTHER */
905 var45 = 1; /* easy <3l:Int> isa OTHER*/
906 if (unlikely(!var45)) {
907 var_class_name48 = type_core__Int.name;
908 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
909 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
910 fatal_exit(1);
911 }
912 var49 = var_middle * 3l;
913 var43 = var49;
914 goto RET_LABEL44;
915 RET_LABEL44:(void)0;
916 }
917 }
918 {
919 { /* Inline kernel$Int$+ (var43,1l) on <var43:Int> */
920 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
921 /* <1l:Int> isa OTHER */
922 var52 = 1; /* easy <1l:Int> isa OTHER*/
923 if (unlikely(!var52)) {
924 var_class_name55 = type_core__Int.name;
925 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
926 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
927 fatal_exit(1);
928 }
929 var56 = var43 + 1l;
930 var50 = var56;
931 goto RET_LABEL51;
932 RET_LABEL51:(void)0;
933 }
934 }
935 var_subindex = var50;
936 {
937 { /* Inline tables$TablesCapable$parser_action (self,var_state,var_subindex) on <self:Parser> */
938 var59 = parser_action(self, var_state, var_subindex);
939 var57 = var59;
940 goto RET_LABEL58;
941 RET_LABEL58:(void)0;
942 }
943 }
944 var_goal = var57;
945 {
946 { /* Inline kernel$Int$< (var_index,var_goal) on <var_index:Int> */
947 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
948 /* <var_goal:Int> isa OTHER */
949 var62 = 1; /* easy <var_goal:Int> isa OTHER*/
950 if (unlikely(!var62)) {
951 var_class_name65 = type_core__Int.name;
952 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
953 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
954 fatal_exit(1);
955 }
956 var66 = var_index < var_goal;
957 var60 = var66;
958 goto RET_LABEL61;
959 RET_LABEL61:(void)0;
960 }
961 }
962 if (var60){
963 {
964 { /* Inline kernel$Int$- (var_middle,1l) on <var_middle:Int> */
965 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
966 /* <1l:Int> isa OTHER */
967 var69 = 1; /* easy <1l:Int> isa OTHER*/
968 if (unlikely(!var69)) {
969 var_class_name72 = type_core__Int.name;
970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
971 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
972 fatal_exit(1);
973 }
974 var73 = var_middle - 1l;
975 var67 = var73;
976 goto RET_LABEL68;
977 RET_LABEL68:(void)0;
978 }
979 }
980 var_high = var67;
981 } else {
982 {
983 { /* Inline kernel$Int$> (var_index,var_goal) on <var_index:Int> */
984 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
985 /* <var_goal:Int> isa OTHER */
986 var76 = 1; /* easy <var_goal:Int> isa OTHER*/
987 if (unlikely(!var76)) {
988 var_class_name79 = type_core__Int.name;
989 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
990 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
991 fatal_exit(1);
992 }
993 var80 = var_index > var_goal;
994 var74 = var80;
995 goto RET_LABEL75;
996 RET_LABEL75:(void)0;
997 }
998 }
999 if (var74){
1000 {
1001 { /* Inline kernel$Int$+ (var_middle,1l) on <var_middle:Int> */
1002 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1003 /* <1l:Int> isa OTHER */
1004 var83 = 1; /* easy <1l:Int> isa OTHER*/
1005 if (unlikely(!var83)) {
1006 var_class_name86 = type_core__Int.name;
1007 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
1008 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1009 fatal_exit(1);
1010 }
1011 var87 = var_middle + 1l;
1012 var81 = var87;
1013 goto RET_LABEL82;
1014 RET_LABEL82:(void)0;
1015 }
1016 }
1017 var_low = var81;
1018 } else {
1019 {
1020 { /* Inline kernel$Int$+ (var_subindex,1l) on <var_subindex:Int> */
1021 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1022 /* <1l:Int> isa OTHER */
1023 var90 = 1; /* easy <1l:Int> isa OTHER*/
1024 if (unlikely(!var90)) {
1025 var_class_name93 = type_core__Int.name;
1026 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93);
1027 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1028 fatal_exit(1);
1029 }
1030 var94 = var_subindex + 1l;
1031 var88 = var94;
1032 goto RET_LABEL89;
1033 RET_LABEL89:(void)0;
1034 }
1035 }
1036 {
1037 { /* Inline tables$TablesCapable$parser_action (self,var_state,var88) on <self:Parser> */
1038 var97 = parser_action(self, var_state, var88);
1039 var95 = var97;
1040 goto RET_LABEL96;
1041 RET_LABEL96:(void)0;
1042 }
1043 }
1044 var_action_type = var95;
1045 {
1046 { /* Inline kernel$Int$+ (var_subindex,2l) on <var_subindex:Int> */
1047 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1048 /* <2l:Int> isa OTHER */
1049 var100 = 1; /* easy <2l:Int> isa OTHER*/
1050 if (unlikely(!var100)) {
1051 var_class_name103 = type_core__Int.name;
1052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name103);
1053 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1054 fatal_exit(1);
1055 }
1056 var104 = var_subindex + 2l;
1057 var98 = var104;
1058 goto RET_LABEL99;
1059 RET_LABEL99:(void)0;
1060 }
1061 }
1062 {
1063 { /* Inline tables$TablesCapable$parser_action (self,var_state,var98) on <self:Parser> */
1064 var107 = parser_action(self, var_state, var98);
1065 var105 = var107;
1066 goto RET_LABEL106;
1067 RET_LABEL106:(void)0;
1068 }
1069 }
1070 var_action_value = var105;
1071 goto BREAK_label;
1072 }
1073 }
1074 } else {
1075 goto BREAK_label;
1076 }
1077 }
1078 BREAK_label: (void)0;
1079 {
1080 { /* Inline kernel$Int$== (var_action_type,0l) on <var_action_type:Int> */
1081 var110 = var_action_type == 0l;
1082 var108 = var110;
1083 goto RET_LABEL109;
1084 RET_LABEL109:(void)0;
1085 }
1086 }
1087 if (var108){
1088 {
1089 var111 = nitc___nitc__Lexer___next(var_lexer);
1090 }
1091 {
1092 nitc___nitc__Parser___push(self, var_action_value, var111); /* Direct call parser_work$Parser$push on <self:Parser>*/
1093 }
1094 } else {
1095 {
1096 { /* Inline kernel$Int$== (var_action_type,1l) on <var_action_type:Int> */
1097 var114 = var_action_type == 1l;
1098 var112 = var114;
1099 goto RET_LABEL113;
1100 RET_LABEL113:(void)0;
1101 }
1102 }
1103 if (var112){
1104 var115 = self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val; /* _reduce_table on <self:Parser> */
1105 if (unlikely(var115 == NULL)) {
1106 if(catchStack.cursor >= 0){
1107 longjmp(catchStack.envs[catchStack.cursor], 1);
1108 }
1109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _reduce_table");
1110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 137);
1111 fatal_exit(1);
1112 }
1113 {
1114 var116 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var115, var_action_value);
1115 }
1116 {
1117 ((void(*)(val* self, val* p0))(var116->class->vft[COLOR_nitc__parser_work__ReduceAction__action]))(var116, self); /* action on <var116:nullable Object(ReduceAction)>*/
1118 }
1119 } else {
1120 {
1121 { /* Inline kernel$Int$== (var_action_type,2l) on <var_action_type:Int> */
1122 var119 = var_action_type == 2l;
1123 var117 = var119;
1124 goto RET_LABEL118;
1125 RET_LABEL118:(void)0;
1126 }
1127 }
1128 if (var117){
1129 {
1130 var120 = nitc___nitc__Lexer___next(var_lexer);
1131 }
1132 var_node2 = var120;
1133 /* <var_node2:Token> isa EOF */
1134 cltype122 = type_nitc__EOF.color;
1135 idtype123 = type_nitc__EOF.id;
1136 if(cltype122 >= var_node2->type->table_size) {
1137 var121 = 0;
1138 } else {
1139 var121 = var_node2->type->type_table[cltype122] == idtype123;
1140 }
1141 if (unlikely(!var121)) {
1142 if(catchStack.cursor >= 0){
1143 longjmp(catchStack.envs[catchStack.cursor], 1);
1144 }
1145 PRINT_ERROR("Runtime error: %s", "Assert failed");
1146 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 140);
1147 fatal_exit(1);
1148 }
1149 {
1150 var124 = nitc___nitc__Parser___pop(self);
1151 }
1152 var_node1 = var124;
1153 /* <var_node1:nullable Object> isa AModule */
1154 cltype126 = type_nitc__AModule.color;
1155 idtype127 = type_nitc__AModule.id;
1156 if(var_node1 == NULL) {
1157 var125 = 0;
1158 } else {
1159 if(cltype126 >= (((long)var_node1&3)?type_info[((long)var_node1&3)]:var_node1->type)->table_size) {
1160 var125 = 0;
1161 } else {
1162 var125 = (((long)var_node1&3)?type_info[((long)var_node1&3)]:var_node1->type)->type_table[cltype126] == idtype127;
1163 }
1164 }
1165 if (unlikely(!var125)) {
1166 if(catchStack.cursor >= 0){
1167 longjmp(catchStack.envs[catchStack.cursor], 1);
1168 }
1169 PRINT_ERROR("Runtime error: %s", "Assert failed");
1170 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 142);
1171 fatal_exit(1);
1172 }
1173 var128 = NEW_nitc__Start(&type_nitc__Start);
1174 {
1175 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__parser_nodes__Start__n_base_61d]))(var128, var_node1); /* n_base= on <var128:Start>*/
1176 }
1177 {
1178 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__parser_nodes__Start__n_eof_61d]))(var128, var_node2); /* n_eof= on <var128:Start>*/
1179 }
1180 {
1181 ((void(*)(val* self))(var128->class->vft[COLOR_core__kernel__Object__init]))(var128); /* init on <var128:Start>*/
1182 }
1183 var_node = var128;
1184 {
1185 { /* Inline parser_nodes$ANode$parent= (var_node2,var_node) on <var_node2:Token(EOF)> */
1186 var_node2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = var_node; /* _parent on <var_node2:Token(EOF)> */
1187 RET_LABEL129:(void)0;
1188 }
1189 }
1190 var130 = NEW_nitc__parser_work__ComputeProdLocationVisitor(&type_nitc__parser_work__ComputeProdLocationVisitor);
1191 {
1192 { /* Inline lexer_work$Lexer$file (var_lexer) on <var_lexer:Lexer> */
1193 var133 = var_lexer->attrs[COLOR_nitc__lexer_work__Lexer___file].val; /* _file on <var_lexer:Lexer> */
1194 if (unlikely(var133 == NULL)) {
1195 if(catchStack.cursor >= 0){
1196 longjmp(catchStack.envs[catchStack.cursor], 1);
1197 }
1198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
1199 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__lexer_work, 90);
1200 fatal_exit(1);
1201 }
1202 var131 = var133;
1203 RET_LABEL132:(void)0;
1204 }
1205 }
1206 {
1207 { /* Inline parser_nodes$SourceFile$first_token (var131) on <var131:SourceFile> */
1208 var136 = var131->attrs[COLOR_nitc__parser_nodes__SourceFile___first_token].val; /* _first_token on <var131:SourceFile> */
1209 var134 = var136;
1210 RET_LABEL135:(void)0;
1211 }
1212 }
1213 {
1214 ((void(*)(val* self, val* p0))(var130->class->vft[COLOR_nitc__parser_work__ComputeProdLocationVisitor__token_61d]))(var130, var134); /* token= on <var130:ComputeProdLocationVisitor>*/
1215 }
1216 {
1217 ((void(*)(val* self))(var130->class->vft[COLOR_core__kernel__Object__init]))(var130); /* init on <var130:ComputeProdLocationVisitor>*/
1218 }
1219 {
1220 nitc___nitc__Visitor___enter_visit(var130, var_node); /* Direct call parser_nodes$Visitor$enter_visit on <var130:ComputeProdLocationVisitor>*/
1221 }
1222 var = var_node;
1223 goto RET_LABEL;
1224 } else {
1225 {
1226 { /* Inline kernel$Int$== (var_action_type,3l) on <var_action_type:Int> */
1227 var139 = var_action_type == 3l;
1228 var137 = var139;
1229 goto RET_LABEL138;
1230 RET_LABEL138:(void)0;
1231 }
1232 }
1233 if (var137){
1234 for(;;) {
1235 var140 = var_token->attrs[COLOR_nitc__parser_nodes__ANode___location].val != NULL; /* _location on <var_token:Token> */
1236 var141 = !var140;
1237 if (var141){
1238 {
1239 var142 = nitc___nitc__Lexer___next(var_lexer);
1240 }
1241 var_token = var142;
1242 } else {
1243 goto BREAK_label143;
1244 }
1245 }
1246 BREAK_label143: (void)0;
1247 var144 = NEW_nitc__AParserError(&type_nitc__AParserError);
1248 if (unlikely(varonce==NULL)) {
1249 var145 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1250 if (likely(varonce146!=NULL)) {
1251 var147 = varonce146;
1252 } else {
1253 var148 = "Syntax Error: unexpected ";
1254 var150 = (val*)(25l<<2|1);
1255 var151 = (val*)(25l<<2|1);
1256 var152 = (val*)((long)(0)<<2|3);
1257 var153 = (val*)((long)(0)<<2|3);
1258 var149 = core__flat___CString___to_s_unsafe(var148, var150, var151, var152, var153);
1259 var147 = var149;
1260 varonce146 = var147;
1261 }
1262 ((struct instance_core__NativeArray*)var145)->values[0]=var147;
1263 if (likely(varonce154!=NULL)) {
1264 var155 = varonce154;
1265 } else {
1266 var156 = ".";
1267 var158 = (val*)(1l<<2|1);
1268 var159 = (val*)(1l<<2|1);
1269 var160 = (val*)((long)(0)<<2|3);
1270 var161 = (val*)((long)(0)<<2|3);
1271 var157 = core__flat___CString___to_s_unsafe(var156, var158, var159, var160, var161);
1272 var155 = var157;
1273 varonce154 = var155;
1274 }
1275 ((struct instance_core__NativeArray*)var145)->values[2]=var155;
1276 } else {
1277 var145 = varonce;
1278 varonce = NULL;
1279 }
1280 {
1281 var162 = ((val*(*)(val* self))(var_token->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_token); /* to_s on <var_token:Token>*/
1282 }
1283 ((struct instance_core__NativeArray*)var145)->values[1]=var162;
1284 {
1285 var163 = ((val*(*)(val* self))(var145->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var145); /* native_to_s on <var145:NativeArray[String]>*/
1286 }
1287 varonce = var145;
1288 {
1289 { /* Inline parser_nodes$ANode$location (var_token) on <var_token:Token> */
1290 var166 = var_token->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_token:Token> */
1291 if (unlikely(var166 == NULL)) {
1292 if(catchStack.cursor >= 0){
1293 longjmp(catchStack.envs[catchStack.cursor], 1);
1294 }
1295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1296 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
1297 fatal_exit(1);
1298 }
1299 var164 = var166;
1300 RET_LABEL165:(void)0;
1301 }
1302 }
1303 {
1304 nitc__lexer_work___AParserError___init_parser_error(var144, var163, var164, var_token); /* Direct call lexer_work$AParserError$init_parser_error on <var144:AParserError>*/
1305 }
1306 var_node2167 = var144;
1307 var168 = NEW_nitc__Start(&type_nitc__Start);
1308 {
1309 ((void(*)(val* self, val* p0))(var168->class->vft[COLOR_nitc__parser_nodes__Start__n_base_61d]))(var168, ((val*)NULL)); /* n_base= on <var168:Start>*/
1310 }
1311 {
1312 ((void(*)(val* self, val* p0))(var168->class->vft[COLOR_nitc__parser_nodes__Start__n_eof_61d]))(var168, var_node2167); /* n_eof= on <var168:Start>*/
1313 }
1314 {
1315 ((void(*)(val* self))(var168->class->vft[COLOR_core__kernel__Object__init]))(var168); /* init on <var168:Start>*/
1316 }
1317 var_node169 = var168;
1318 var = var_node169;
1319 goto RET_LABEL;
1320 } else {
1321 }
1322 }
1323 }
1324 }
1325 }
1326 RET_LABEL:;
1327 return var;
1328 }
1329 /* method parser_work$Parser$reduce_table= for (self: Parser, Array[ReduceAction]) */
1330 void nitc___nitc__Parser___reduce_table_61d(val* self, val* p0) {
1331 self->attrs[COLOR_nitc__parser_work__Parser___reduce_table].val = p0; /* _reduce_table on <self:Parser> */
1332 RET_LABEL:;
1333 }
1334 /* method parser_work$Prod$collect_text for (self: Prod): String */
1335 val* nitc__parser_work___Prod___collect_text(val* self) {
1336 val* var /* : String */;
1337 val* var1 /* : TextCollectorVisitor */;
1338 val* var_v /* var v: TextCollectorVisitor */;
1339 val* var3 /* : String */;
1340 val* var5 /* : String */;
1341 static val* varonce;
1342 val* var6 /* : String */;
1343 char* var7 /* : CString */;
1344 val* var8 /* : String */;
1345 val* var9 /* : nullable Int */;
1346 val* var10 /* : nullable Int */;
1347 val* var11 /* : nullable Bool */;
1348 val* var12 /* : nullable Bool */;
1349 short int var13 /* : Bool */;
1350 val* var_other /* var other: nullable Object */;
1351 short int var15 /* : Bool */;
1352 short int var16 /* : Bool */;
1353 val* var17 /* : String */;
1354 val* var19 /* : String */;
1355 var1 = NEW_nitc__parser_work__TextCollectorVisitor(&type_nitc__parser_work__TextCollectorVisitor);
1356 {
1357 { /* Inline kernel$Object$init (var1) on <var1:TextCollectorVisitor> */
1358 RET_LABEL2:(void)0;
1359 }
1360 }
1361 var_v = var1;
1362 {
1363 nitc___nitc__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:TextCollectorVisitor>*/
1364 }
1365 {
1366 { /* Inline parser_work$TextCollectorVisitor$text (var_v) on <var_v:TextCollectorVisitor> */
1367 var5 = var_v->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
1368 if (unlikely(var5 == NULL)) {
1369 if(catchStack.cursor >= 0){
1370 longjmp(catchStack.envs[catchStack.cursor], 1);
1371 }
1372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
1374 fatal_exit(1);
1375 }
1376 var3 = var5;
1377 RET_LABEL4:(void)0;
1378 }
1379 }
1380 if (likely(varonce!=NULL)) {
1381 var6 = varonce;
1382 } else {
1383 var7 = "";
1384 var9 = (val*)(0l<<2|1);
1385 var10 = (val*)(0l<<2|1);
1386 var11 = (val*)((long)(0)<<2|3);
1387 var12 = (val*)((long)(0)<<2|3);
1388 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
1389 var6 = var8;
1390 varonce = var6;
1391 }
1392 {
1393 { /* Inline kernel$Object$!= (var3,var6) on <var3:String> */
1394 var_other = var6;
1395 {
1396 var15 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var_other); /* == on <var3:String>*/
1397 }
1398 var16 = !var15;
1399 var13 = var16;
1400 goto RET_LABEL14;
1401 RET_LABEL14:(void)0;
1402 }
1403 }
1404 if (unlikely(!var13)) {
1405 if(catchStack.cursor >= 0){
1406 longjmp(catchStack.envs[catchStack.cursor], 1);
1407 }
1408 PRINT_ERROR("Runtime error: %s", "Assert failed");
1409 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 171);
1410 fatal_exit(1);
1411 }
1412 {
1413 { /* Inline parser_work$TextCollectorVisitor$text (var_v) on <var_v:TextCollectorVisitor> */
1414 var19 = var_v->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
1415 if (unlikely(var19 == NULL)) {
1416 if(catchStack.cursor >= 0){
1417 longjmp(catchStack.envs[catchStack.cursor], 1);
1418 }
1419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
1421 fatal_exit(1);
1422 }
1423 var17 = var19;
1424 RET_LABEL18:(void)0;
1425 }
1426 }
1427 var = var17;
1428 goto RET_LABEL;
1429 RET_LABEL:;
1430 return var;
1431 }
1432 /* method parser_work$ComputeProdLocationVisitor$token for (self: ComputeProdLocationVisitor): nullable Token */
1433 val* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token(val* self) {
1434 val* var /* : nullable Token */;
1435 val* var1 /* : nullable Token */;
1436 var1 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val; /* _token on <self:ComputeProdLocationVisitor> */
1437 var = var1;
1438 RET_LABEL:;
1439 return var;
1440 }
1441 /* method parser_work$ComputeProdLocationVisitor$token= for (self: ComputeProdLocationVisitor, nullable Token) */
1442 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___token_61d(val* self, val* p0) {
1443 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val = p0; /* _token on <self:ComputeProdLocationVisitor> */
1444 RET_LABEL:;
1445 }
1446 /* method parser_work$ComputeProdLocationVisitor$last_token for (self: ComputeProdLocationVisitor): nullable Token */
1447 val* nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___last_token(val* self) {
1448 val* var /* : nullable Token */;
1449 val* var1 /* : nullable Token */;
1450 var1 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val; /* _last_token on <self:ComputeProdLocationVisitor> */
1451 var = var1;
1452 RET_LABEL:;
1453 return var;
1454 }
1455 /* method parser_work$ComputeProdLocationVisitor$visit for (self: ComputeProdLocationVisitor, ANode) */
1456 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
1457 val* var_n /* var n: ANode */;
1458 short int var /* : Bool */;
1459 int cltype;
1460 int idtype;
1461 short int var1 /* : Bool */;
1462 short int var2 /* : Bool */;
1463 val* var3 /* : nullable Token */;
1464 val* var5 /* : nullable Token */;
1465 val* var_cursor /* var cursor: nullable Token */;
1466 short int var6 /* : Bool */;
1467 val* var_other /* var other: nullable Object */;
1468 short int var8 /* : Bool */;
1469 short int var9 /* : Bool */;
1470 val* var10 /* : nullable Token */;
1471 val* var12 /* : nullable Token */;
1472 val* var_lt /* var lt: nullable Token */;
1473 short int var13 /* : Bool */;
1474 short int var14 /* : Bool */;
1475 short int var16 /* : Bool */;
1476 short int var17 /* : Bool */;
1477 val* var18 /* : Location */;
1478 val* var20 /* : Location */;
1479 long var21 /* : Int */;
1480 long var23 /* : Int */;
1481 long var_ltl /* var ltl: Int */;
1482 short int var24 /* : Bool */;
1483 short int var25 /* : Bool */;
1484 short int var26 /* : Bool */;
1485 short int var27 /* : Bool */;
1486 short int var29 /* : Bool */;
1487 short int var30 /* : Bool */;
1488 short int var_ /* var : Bool */;
1489 short int var31 /* : Bool */;
1490 short int var33 /* : Bool */;
1491 short int var34 /* : Bool */;
1492 short int var_35 /* var : Bool */;
1493 val* var36 /* : Location */;
1494 val* var38 /* : Location */;
1495 long var39 /* : Int */;
1496 long var41 /* : Int */;
1497 short int var42 /* : Bool */;
1498 short int var44 /* : Bool */;
1499 val* var46 /* : Array[Token] */;
1500 val* var47 /* : nullable Token */;
1501 val* var49 /* : nullable Token */;
1502 short int var50 /* : Bool */;
1503 short int var51 /* : Bool */;
1504 short int var52 /* : Bool */;
1505 short int var54 /* : Bool */;
1506 short int var55 /* : Bool */;
1507 short int var_56 /* var : Bool */;
1508 short int var57 /* : Bool */;
1509 short int var59 /* : Bool */;
1510 short int var60 /* : Bool */;
1511 val* var62 /* : Array[Token] */;
1512 val* var63 /* : nullable Token */;
1513 val* var65 /* : nullable Token */;
1514 val* var67 /* : nullable Token */;
1515 val* var69 /* : nullable Token */;
1516 val* var71 /* : Location */;
1517 val* var_loc /* var loc: Location */;
1518 val* var72 /* : Array[Prod] */;
1519 short int var73 /* : Bool */;
1520 short int var74 /* : Bool */;
1521 val* var75 /* : Array[Prod] */;
1522 val* var_76 /* var : Array[Prod] */;
1523 val* var77 /* : IndexedIterator[nullable Object] */;
1524 val* var_78 /* var : IndexedIterator[Prod] */;
1525 short int var79 /* : Bool */;
1526 val* var81 /* : nullable Object */;
1527 val* var_no /* var no: Prod */;
1528 val* var82 /* : Array[Prod] */;
1529 val* var83 /* : Array[Prod] */;
1530 short int var84 /* : Bool */;
1531 short int var85 /* : Bool */;
1532 val* var86 /* : Location */;
1533 val* var87 /* : nullable SourceFile */;
1534 val* var89 /* : nullable SourceFile */;
1535 long var90 /* : Int */;
1536 long var92 /* : Int */;
1537 long var93 /* : Int */;
1538 long var95 /* : Int */;
1539 long var96 /* : Int */;
1540 long var98 /* : Int */;
1541 long var99 /* : Int */;
1542 long var101 /* : Int */;
1543 val* var_loco /* var loco: Location */;
1544 val* var102 /* : Array[Prod] */;
1545 val* var_103 /* var : Array[Prod] */;
1546 val* var104 /* : IndexedIterator[nullable Object] */;
1547 val* var_105 /* var : IndexedIterator[Prod] */;
1548 short int var106 /* : Bool */;
1549 val* var108 /* : nullable Object */;
1550 val* var_no109 /* var no: Prod */;
1551 val* var111 /* : Array[Prod] */;
1552 short int var112 /* : Bool */;
1553 int cltype113;
1554 int idtype114;
1555 val* var115 /* : Array[Prod] */;
1556 val* var116 /* : nullable Location */;
1557 val* var_startl /* var startl: nullable Location */;
1558 short int var117 /* : Bool */;
1559 short int var118 /* : Bool */;
1560 short int var120 /* : Bool */;
1561 short int var121 /* : Bool */;
1562 val* var122 /* : nullable Token */;
1563 val* var123 /* : Location */;
1564 val* var125 /* : Location */;
1565 val* var_endl /* var endl: Location */;
1566 short int var126 /* : Bool */;
1567 val* var128 /* : Location */;
1568 val* var129 /* : nullable SourceFile */;
1569 val* var131 /* : nullable SourceFile */;
1570 long var132 /* : Int */;
1571 long var134 /* : Int */;
1572 long var135 /* : Int */;
1573 long var137 /* : Int */;
1574 long var138 /* : Int */;
1575 long var140 /* : Int */;
1576 long var141 /* : Int */;
1577 long var143 /* : Int */;
1578 val* var145 /* : Array[Prod] */;
1579 short int var146 /* : Bool */;
1580 short int var147 /* : Bool */;
1581 val* var148 /* : Location */;
1582 val* var149 /* : nullable SourceFile */;
1583 val* var151 /* : nullable SourceFile */;
1584 long var152 /* : Int */;
1585 long var154 /* : Int */;
1586 long var155 /* : Int */;
1587 long var157 /* : Int */;
1588 long var158 /* : Int */;
1589 long var160 /* : Int */;
1590 long var161 /* : Int */;
1591 long var163 /* : Int */;
1592 val* var_loc164 /* var loc: Location */;
1593 val* var165 /* : Array[Prod] */;
1594 val* var_166 /* var : Array[Prod] */;
1595 val* var167 /* : IndexedIterator[nullable Object] */;
1596 val* var_168 /* var : IndexedIterator[Prod] */;
1597 short int var169 /* : Bool */;
1598 val* var171 /* : nullable Object */;
1599 val* var_no172 /* var no: Prod */;
1600 val* var174 /* : Array[Prod] */;
1601 val* var175 /* : Array[Prod] */;
1602 var_n = p0;
1603 /* <var_n:ANode> isa Token */
1604 cltype = type_nitc__Token.color;
1605 idtype = type_nitc__Token.id;
1606 if(cltype >= var_n->type->table_size) {
1607 var = 0;
1608 } else {
1609 var = var_n->type->type_table[cltype] == idtype;
1610 }
1611 if (var){
1612 var1 = var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val != NULL; /* _location on <var_n:ANode(Token)> */
1613 var2 = !var1;
1614 if (var2){
1615 goto RET_LABEL;
1616 } else {
1617 }
1618 {
1619 { /* Inline parser_work$ComputeProdLocationVisitor$token (self) on <self:ComputeProdLocationVisitor> */
1620 var5 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val; /* _token on <self:ComputeProdLocationVisitor> */
1621 var3 = var5;
1622 RET_LABEL4:(void)0;
1623 }
1624 }
1625 var_cursor = var3;
1626 {
1627 { /* Inline kernel$Object$!= (var_n,var_cursor) on <var_n:ANode(Token)> */
1628 var_other = var_cursor;
1629 {
1630 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)>*/
1631 }
1632 var9 = !var8;
1633 var6 = var9;
1634 goto RET_LABEL7;
1635 RET_LABEL7:(void)0;
1636 }
1637 }
1638 if (var6){
1639 {
1640 { /* Inline parser_work$ComputeProdLocationVisitor$last_token (self) on <self:ComputeProdLocationVisitor> */
1641 var12 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val; /* _last_token on <self:ComputeProdLocationVisitor> */
1642 var10 = var12;
1643 RET_LABEL11:(void)0;
1644 }
1645 }
1646 var_lt = var10;
1647 if (var_lt == NULL) {
1648 var13 = 0; /* is null */
1649 } else {
1650 var13 = 1; /* arg is null and recv is not */
1651 }
1652 if (0) {
1653 { /* Inline kernel$Object$!= (var_lt,((val*)NULL)) on <var_lt:nullable Token> */
1654 var_other = ((val*)NULL);
1655 {
1656 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)>*/
1657 }
1658 var17 = !var16;
1659 var14 = var17;
1660 goto RET_LABEL15;
1661 RET_LABEL15:(void)0;
1662 }
1663 var13 = var14;
1664 }
1665 if (var13){
1666 {
1667 { /* Inline parser_nodes$ANode$location (var_lt) on <var_lt:nullable Token(Token)> */
1668 var20 = var_lt->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_lt:nullable Token(Token)> */
1669 if (unlikely(var20 == NULL)) {
1670 if(catchStack.cursor >= 0){
1671 longjmp(catchStack.envs[catchStack.cursor], 1);
1672 }
1673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
1675 fatal_exit(1);
1676 }
1677 var18 = var20;
1678 RET_LABEL19:(void)0;
1679 }
1680 }
1681 {
1682 { /* Inline location$Location$line_end (var18) on <var18:Location> */
1683 var23 = var18->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var18:Location> */
1684 var21 = var23;
1685 RET_LABEL22:(void)0;
1686 }
1687 }
1688 var_ltl = var21;
1689 for(;;) {
1690 if (var_cursor == NULL) {
1691 var26 = 0; /* is null */
1692 } else {
1693 var26 = 1; /* arg is null and recv is not */
1694 }
1695 if (0) {
1696 { /* Inline kernel$Object$!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
1697 var_other = ((val*)NULL);
1698 {
1699 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)>*/
1700 }
1701 var30 = !var29;
1702 var27 = var30;
1703 goto RET_LABEL28;
1704 RET_LABEL28:(void)0;
1705 }
1706 var26 = var27;
1707 }
1708 var_ = var26;
1709 if (var26){
1710 {
1711 { /* Inline kernel$Object$!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
1712 var_other = var_n;
1713 {
1714 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)>*/
1715 }
1716 var34 = !var33;
1717 var31 = var34;
1718 goto RET_LABEL32;
1719 RET_LABEL32:(void)0;
1720 }
1721 }
1722 var25 = var31;
1723 } else {
1724 var25 = var_;
1725 }
1726 var_35 = var25;
1727 if (var25){
1728 {
1729 { /* Inline parser_nodes$ANode$location (var_cursor) on <var_cursor:nullable Token(Token)> */
1730 var38 = var_cursor->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_cursor:nullable Token(Token)> */
1731 if (unlikely(var38 == NULL)) {
1732 if(catchStack.cursor >= 0){
1733 longjmp(catchStack.envs[catchStack.cursor], 1);
1734 }
1735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
1737 fatal_exit(1);
1738 }
1739 var36 = var38;
1740 RET_LABEL37:(void)0;
1741 }
1742 }
1743 {
1744 { /* Inline location$Location$line_start (var36) on <var36:Location> */
1745 var41 = var36->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var36:Location> */
1746 var39 = var41;
1747 RET_LABEL40:(void)0;
1748 }
1749 }
1750 {
1751 { /* Inline kernel$Int$== (var_ltl,var39) on <var_ltl:Int> */
1752 var44 = var_ltl == var39;
1753 var42 = var44;
1754 goto RET_LABEL43;
1755 RET_LABEL43:(void)0;
1756 }
1757 }
1758 var24 = var42;
1759 } else {
1760 var24 = var_35;
1761 }
1762 if (var24){
1763 {
1764 { /* Inline parser_nodes$Token$is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
1765 var_cursor->attrs[COLOR_nitc__parser_nodes__Token___is_loose].s = 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
1766 RET_LABEL45:(void)0;
1767 }
1768 }
1769 {
1770 var46 = nitc___nitc__Token___next_looses(var_lt);
1771 }
1772 {
1773 core___core__Array___core__abstract_collection__SimpleCollection__add(var46, var_cursor); /* Direct call array$Array$add on <var46:Array[Token]>*/
1774 }
1775 {
1776 { /* Inline parser_nodes$Token$next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
1777 var49 = var_cursor->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_cursor:nullable Token(Token)> */
1778 var47 = var49;
1779 RET_LABEL48:(void)0;
1780 }
1781 }
1782 var_cursor = var47;
1783 } else {
1784 goto BREAK_label;
1785 }
1786 }
1787 BREAK_label: (void)0;
1788 } else {
1789 }
1790 for(;;) {
1791 if (var_cursor == NULL) {
1792 var51 = 0; /* is null */
1793 } else {
1794 var51 = 1; /* arg is null and recv is not */
1795 }
1796 if (0) {
1797 { /* Inline kernel$Object$!= (var_cursor,((val*)NULL)) on <var_cursor:nullable Token> */
1798 var_other = ((val*)NULL);
1799 {
1800 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)>*/
1801 }
1802 var55 = !var54;
1803 var52 = var55;
1804 goto RET_LABEL53;
1805 RET_LABEL53:(void)0;
1806 }
1807 var51 = var52;
1808 }
1809 var_56 = var51;
1810 if (var51){
1811 {
1812 { /* Inline kernel$Object$!= (var_cursor,var_n) on <var_cursor:nullable Token(Token)> */
1813 var_other = var_n;
1814 {
1815 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)>*/
1816 }
1817 var60 = !var59;
1818 var57 = var60;
1819 goto RET_LABEL58;
1820 RET_LABEL58:(void)0;
1821 }
1822 }
1823 var50 = var57;
1824 } else {
1825 var50 = var_56;
1826 }
1827 if (var50){
1828 {
1829 { /* Inline parser_nodes$Token$is_loose= (var_cursor,1) on <var_cursor:nullable Token(Token)> */
1830 var_cursor->attrs[COLOR_nitc__parser_nodes__Token___is_loose].s = 1; /* _is_loose on <var_cursor:nullable Token(Token)> */
1831 RET_LABEL61:(void)0;
1832 }
1833 }
1834 {
1835 var62 = nitc___nitc__Token___prev_looses(var_n);
1836 }
1837 {
1838 core___core__Array___core__abstract_collection__SimpleCollection__add(var62, var_cursor); /* Direct call array$Array$add on <var62:Array[Token]>*/
1839 }
1840 {
1841 { /* Inline parser_nodes$Token$next_token (var_cursor) on <var_cursor:nullable Token(Token)> */
1842 var65 = var_cursor->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_cursor:nullable Token(Token)> */
1843 var63 = var65;
1844 RET_LABEL64:(void)0;
1845 }
1846 }
1847 var_cursor = var63;
1848 } else {
1849 goto BREAK_label66;
1850 }
1851 }
1852 BREAK_label66: (void)0;
1853 } else {
1854 }
1855 {
1856 { /* Inline parser_nodes$Token$next_token (var_n) on <var_n:ANode(Token)> */
1857 var69 = var_n->attrs[COLOR_nitc__parser_nodes__Token___next_token].val; /* _next_token on <var_n:ANode(Token)> */
1858 var67 = var69;
1859 RET_LABEL68:(void)0;
1860 }
1861 }
1862 {
1863 { /* Inline parser_work$ComputeProdLocationVisitor$token= (self,var67) on <self:ComputeProdLocationVisitor> */
1864 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___token].val = var67; /* _token on <self:ComputeProdLocationVisitor> */
1865 RET_LABEL70:(void)0;
1866 }
1867 }
1868 var71 = var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_n:ANode(Token)> */
1869 if (unlikely(var71 == NULL)) {
1870 if(catchStack.cursor >= 0){
1871 longjmp(catchStack.envs[catchStack.cursor], 1);
1872 }
1873 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1874 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 227);
1875 fatal_exit(1);
1876 }
1877 var_loc = var71;
1878 self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val = var_n; /* _last_token on <self:ComputeProdLocationVisitor> */
1879 var72 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1880 if (unlikely(var72 == NULL)) {
1881 if(catchStack.cursor >= 0){
1882 longjmp(catchStack.envs[catchStack.cursor], 1);
1883 }
1884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1885 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 231);
1886 fatal_exit(1);
1887 }
1888 {
1889 var73 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var72);
1890 }
1891 var74 = !var73;
1892 if (var74){
1893 var75 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1894 if (unlikely(var75 == NULL)) {
1895 if(catchStack.cursor >= 0){
1896 longjmp(catchStack.envs[catchStack.cursor], 1);
1897 }
1898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 232);
1900 fatal_exit(1);
1901 }
1902 var_76 = var75;
1903 {
1904 var77 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_76);
1905 }
1906 var_78 = var77;
1907 for(;;) {
1908 {
1909 var79 = ((short int(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_78); /* is_ok on <var_78:IndexedIterator[Prod]>*/
1910 }
1911 if (var79){
1912 } else {
1913 goto BREAK_label80;
1914 }
1915 {
1916 var81 = ((val*(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_78); /* item on <var_78:IndexedIterator[Prod]>*/
1917 }
1918 var_no = var81;
1919 var_no->attrs[COLOR_nitc__parser_work__Prod___first_location].val = var_loc; /* _first_location on <var_no:Prod> */
1920 {
1921 ((void(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_78); /* next on <var_78:IndexedIterator[Prod]>*/
1922 }
1923 }
1924 BREAK_label80: (void)0;
1925 {
1926 ((void(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_78); /* finish on <var_78:IndexedIterator[Prod]>*/
1927 }
1928 var82 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1929 if (unlikely(var82 == NULL)) {
1930 if(catchStack.cursor >= 0){
1931 longjmp(catchStack.envs[catchStack.cursor], 1);
1932 }
1933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1934 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 235);
1935 fatal_exit(1);
1936 }
1937 {
1938 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var82); /* Direct call array$AbstractArray$clear on <var82:Array[Prod]>*/
1939 }
1940 } else {
1941 }
1942 var83 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1943 if (unlikely(var83 == NULL)) {
1944 if(catchStack.cursor >= 0){
1945 longjmp(catchStack.envs[catchStack.cursor], 1);
1946 }
1947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1948 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 239);
1949 fatal_exit(1);
1950 }
1951 {
1952 var84 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var83);
1953 }
1954 var85 = !var84;
1955 if (var85){
1956 var86 = NEW_nitc__Location(&type_nitc__Location);
1957 {
1958 { /* Inline location$Location$file (var_loc) on <var_loc:Location> */
1959 var89 = var_loc->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_loc:Location> */
1960 var87 = var89;
1961 RET_LABEL88:(void)0;
1962 }
1963 }
1964 {
1965 { /* Inline location$Location$line_start (var_loc) on <var_loc:Location> */
1966 var92 = var_loc->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
1967 var90 = var92;
1968 RET_LABEL91:(void)0;
1969 }
1970 }
1971 {
1972 { /* Inline location$Location$line_start (var_loc) on <var_loc:Location> */
1973 var95 = var_loc->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
1974 var93 = var95;
1975 RET_LABEL94:(void)0;
1976 }
1977 }
1978 {
1979 { /* Inline location$Location$column_start (var_loc) on <var_loc:Location> */
1980 var98 = var_loc->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
1981 var96 = var98;
1982 RET_LABEL97:(void)0;
1983 }
1984 }
1985 {
1986 { /* Inline location$Location$column_start (var_loc) on <var_loc:Location> */
1987 var101 = var_loc->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
1988 var99 = var101;
1989 RET_LABEL100:(void)0;
1990 }
1991 }
1992 {
1993 ((void(*)(val* self, val* p0))(var86->class->vft[COLOR_nitc__location__Location__file_61d]))(var86, var87); /* file= on <var86:Location>*/
1994 }
1995 {
1996 ((void(*)(val* self, long p0))(var86->class->vft[COLOR_nitc__location__Location__line_start_61d]))(var86, var90); /* line_start= on <var86:Location>*/
1997 }
1998 {
1999 ((void(*)(val* self, long p0))(var86->class->vft[COLOR_nitc__location__Location__line_end_61d]))(var86, var93); /* line_end= on <var86:Location>*/
2000 }
2001 {
2002 ((void(*)(val* self, long p0))(var86->class->vft[COLOR_nitc__location__Location__column_start_61d]))(var86, var96); /* column_start= on <var86:Location>*/
2003 }
2004 {
2005 ((void(*)(val* self, long p0))(var86->class->vft[COLOR_nitc__location__Location__column_end_61d]))(var86, var99); /* column_end= on <var86:Location>*/
2006 }
2007 {
2008 ((void(*)(val* self))(var86->class->vft[COLOR_core__kernel__Object__init]))(var86); /* init on <var86:Location>*/
2009 }
2010 var_loco = var86;
2011 var102 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2012 if (unlikely(var102 == NULL)) {
2013 if(catchStack.cursor >= 0){
2014 longjmp(catchStack.envs[catchStack.cursor], 1);
2015 }
2016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 241);
2018 fatal_exit(1);
2019 }
2020 var_103 = var102;
2021 {
2022 var104 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_103);
2023 }
2024 var_105 = var104;
2025 for(;;) {
2026 {
2027 var106 = ((short int(*)(val* self))((((long)var_105&3)?class_info[((long)var_105&3)]:var_105->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_105); /* is_ok on <var_105:IndexedIterator[Prod]>*/
2028 }
2029 if (var106){
2030 } else {
2031 goto BREAK_label107;
2032 }
2033 {
2034 var108 = ((val*(*)(val* self))((((long)var_105&3)?class_info[((long)var_105&3)]:var_105->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_105); /* item on <var_105:IndexedIterator[Prod]>*/
2035 }
2036 var_no109 = var108;
2037 {
2038 { /* Inline parser_nodes$ANode$location= (var_no109,var_loco) on <var_no109:Prod> */
2039 var_no109->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_loco; /* _location on <var_no109:Prod> */
2040 RET_LABEL110:(void)0;
2041 }
2042 }
2043 {
2044 ((void(*)(val* self))((((long)var_105&3)?class_info[((long)var_105&3)]:var_105->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_105); /* next on <var_105:IndexedIterator[Prod]>*/
2045 }
2046 }
2047 BREAK_label107: (void)0;
2048 {
2049 ((void(*)(val* self))((((long)var_105&3)?class_info[((long)var_105&3)]:var_105->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_105); /* finish on <var_105:IndexedIterator[Prod]>*/
2050 }
2051 var111 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2052 if (unlikely(var111 == NULL)) {
2053 if(catchStack.cursor >= 0){
2054 longjmp(catchStack.envs[catchStack.cursor], 1);
2055 }
2056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2057 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 244);
2058 fatal_exit(1);
2059 }
2060 {
2061 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var111); /* Direct call array$AbstractArray$clear on <var111:Array[Prod]>*/
2062 }
2063 } else {
2064 }
2065 } else {
2066 /* <var_n:ANode> isa Prod */
2067 cltype113 = type_nitc__Prod.color;
2068 idtype114 = type_nitc__Prod.id;
2069 if(cltype113 >= var_n->type->table_size) {
2070 var112 = 0;
2071 } else {
2072 var112 = var_n->type->type_table[cltype113] == idtype114;
2073 }
2074 if (unlikely(!var112)) {
2075 if(catchStack.cursor >= 0){
2076 longjmp(catchStack.envs[catchStack.cursor], 1);
2077 }
2078 PRINT_ERROR("Runtime error: %s", "Assert failed");
2079 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 247);
2080 fatal_exit(1);
2081 }
2082 var115 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
2083 if (unlikely(var115 == NULL)) {
2084 if(catchStack.cursor >= 0){
2085 longjmp(catchStack.envs[catchStack.cursor], 1);
2086 }
2087 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
2088 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 248);
2089 fatal_exit(1);
2090 }
2091 {
2092 core___core__Array___core__abstract_collection__SimpleCollection__add(var115, var_n); /* Direct call array$Array$add on <var115:Array[Prod]>*/
2093 }
2094 {
2095 ((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)>*/
2096 }
2097 var116 = var_n->attrs[COLOR_nitc__parser_work__Prod___first_location].val; /* _first_location on <var_n:ANode(Prod)> */
2098 var_startl = var116;
2099 if (var_startl == NULL) {
2100 var117 = 0; /* is null */
2101 } else {
2102 var117 = 1; /* arg is null and recv is not */
2103 }
2104 if (0) {
2105 { /* Inline kernel$Object$!= (var_startl,((val*)NULL)) on <var_startl:nullable Location> */
2106 var_other = ((val*)NULL);
2107 {
2108 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)>*/
2109 }
2110 var121 = !var120;
2111 var118 = var121;
2112 goto RET_LABEL119;
2113 RET_LABEL119:(void)0;
2114 }
2115 var117 = var118;
2116 }
2117 if (var117){
2118 var122 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___last_token].val; /* _last_token on <self:ComputeProdLocationVisitor> */
2119 if (var122 == NULL) {
2120 if(catchStack.cursor >= 0){
2121 longjmp(catchStack.envs[catchStack.cursor], 1);
2122 }
2123 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2124 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 255);
2125 fatal_exit(1);
2126 } else {
2127 { /* Inline parser_nodes$ANode$location (var122) on <var122:nullable Token> */
2128 if (unlikely(var122 == NULL)) {
2129 if(catchStack.cursor >= 0){
2130 longjmp(catchStack.envs[catchStack.cursor], 1);
2131 }
2132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2133 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
2134 fatal_exit(1);
2135 }
2136 var125 = var122->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var122:nullable Token> */
2137 if (unlikely(var125 == NULL)) {
2138 if(catchStack.cursor >= 0){
2139 longjmp(catchStack.envs[catchStack.cursor], 1);
2140 }
2141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2142 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
2143 fatal_exit(1);
2144 }
2145 var123 = var125;
2146 RET_LABEL124:(void)0;
2147 }
2148 }
2149 var_endl = var123;
2150 {
2151 var126 = nitc___nitc__Location___core__kernel__Object___61d_61d(var_startl, var_endl);
2152 }
2153 if (var126){
2154 {
2155 { /* Inline parser_nodes$ANode$location= (var_n,var_startl) on <var_n:ANode(Prod)> */
2156 var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_startl; /* _location on <var_n:ANode(Prod)> */
2157 RET_LABEL127:(void)0;
2158 }
2159 }
2160 } else {
2161 var128 = NEW_nitc__Location(&type_nitc__Location);
2162 {
2163 { /* Inline location$Location$file (var_startl) on <var_startl:nullable Location(Location)> */
2164 var131 = var_startl->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_startl:nullable Location(Location)> */
2165 var129 = var131;
2166 RET_LABEL130:(void)0;
2167 }
2168 }
2169 {
2170 { /* Inline location$Location$line_start (var_startl) on <var_startl:nullable Location(Location)> */
2171 var134 = var_startl->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var_startl:nullable Location(Location)> */
2172 var132 = var134;
2173 RET_LABEL133:(void)0;
2174 }
2175 }
2176 {
2177 { /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
2178 var137 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
2179 var135 = var137;
2180 RET_LABEL136:(void)0;
2181 }
2182 }
2183 {
2184 { /* Inline location$Location$column_start (var_startl) on <var_startl:nullable Location(Location)> */
2185 var140 = var_startl->attrs[COLOR_nitc__location__Location___column_start].l; /* _column_start on <var_startl:nullable Location(Location)> */
2186 var138 = var140;
2187 RET_LABEL139:(void)0;
2188 }
2189 }
2190 {
2191 { /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
2192 var143 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
2193 var141 = var143;
2194 RET_LABEL142:(void)0;
2195 }
2196 }
2197 {
2198 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__location__Location__file_61d]))(var128, var129); /* file= on <var128:Location>*/
2199 }
2200 {
2201 ((void(*)(val* self, long p0))(var128->class->vft[COLOR_nitc__location__Location__line_start_61d]))(var128, var132); /* line_start= on <var128:Location>*/
2202 }
2203 {
2204 ((void(*)(val* self, long p0))(var128->class->vft[COLOR_nitc__location__Location__line_end_61d]))(var128, var135); /* line_end= on <var128:Location>*/
2205 }
2206 {
2207 ((void(*)(val* self, long p0))(var128->class->vft[COLOR_nitc__location__Location__column_start_61d]))(var128, var138); /* column_start= on <var128:Location>*/
2208 }
2209 {
2210 ((void(*)(val* self, long p0))(var128->class->vft[COLOR_nitc__location__Location__column_end_61d]))(var128, var141); /* column_end= on <var128:Location>*/
2211 }
2212 {
2213 ((void(*)(val* self))(var128->class->vft[COLOR_core__kernel__Object__init]))(var128); /* init on <var128:Location>*/
2214 }
2215 {
2216 { /* Inline parser_nodes$ANode$location= (var_n,var128) on <var_n:ANode(Prod)> */
2217 var_n->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var128; /* _location on <var_n:ANode(Prod)> */
2218 RET_LABEL144:(void)0;
2219 }
2220 }
2221 }
2222 var145 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2223 if (unlikely(var145 == NULL)) {
2224 if(catchStack.cursor >= 0){
2225 longjmp(catchStack.envs[catchStack.cursor], 1);
2226 }
2227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2228 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 263);
2229 fatal_exit(1);
2230 }
2231 {
2232 var146 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var145);
2233 }
2234 var147 = !var146;
2235 if (var147){
2236 var148 = NEW_nitc__Location(&type_nitc__Location);
2237 {
2238 { /* Inline location$Location$file (var_endl) on <var_endl:Location> */
2239 var151 = var_endl->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var_endl:Location> */
2240 var149 = var151;
2241 RET_LABEL150:(void)0;
2242 }
2243 }
2244 {
2245 { /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
2246 var154 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
2247 var152 = var154;
2248 RET_LABEL153:(void)0;
2249 }
2250 }
2251 {
2252 { /* Inline location$Location$line_end (var_endl) on <var_endl:Location> */
2253 var157 = var_endl->attrs[COLOR_nitc__location__Location___line_end].l; /* _line_end on <var_endl:Location> */
2254 var155 = var157;
2255 RET_LABEL156:(void)0;
2256 }
2257 }
2258 {
2259 { /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
2260 var160 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
2261 var158 = var160;
2262 RET_LABEL159:(void)0;
2263 }
2264 }
2265 {
2266 { /* Inline location$Location$column_end (var_endl) on <var_endl:Location> */
2267 var163 = var_endl->attrs[COLOR_nitc__location__Location___column_end].l; /* _column_end on <var_endl:Location> */
2268 var161 = var163;
2269 RET_LABEL162:(void)0;
2270 }
2271 }
2272 {
2273 ((void(*)(val* self, val* p0))(var148->class->vft[COLOR_nitc__location__Location__file_61d]))(var148, var149); /* file= on <var148:Location>*/
2274 }
2275 {
2276 ((void(*)(val* self, long p0))(var148->class->vft[COLOR_nitc__location__Location__line_start_61d]))(var148, var152); /* line_start= on <var148:Location>*/
2277 }
2278 {
2279 ((void(*)(val* self, long p0))(var148->class->vft[COLOR_nitc__location__Location__line_end_61d]))(var148, var155); /* line_end= on <var148:Location>*/
2280 }
2281 {
2282 ((void(*)(val* self, long p0))(var148->class->vft[COLOR_nitc__location__Location__column_start_61d]))(var148, var158); /* column_start= on <var148:Location>*/
2283 }
2284 {
2285 ((void(*)(val* self, long p0))(var148->class->vft[COLOR_nitc__location__Location__column_end_61d]))(var148, var161); /* column_end= on <var148:Location>*/
2286 }
2287 {
2288 ((void(*)(val* self))(var148->class->vft[COLOR_core__kernel__Object__init]))(var148); /* init on <var148:Location>*/
2289 }
2290 var_loc164 = var148;
2291 var165 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2292 if (unlikely(var165 == NULL)) {
2293 if(catchStack.cursor >= 0){
2294 longjmp(catchStack.envs[catchStack.cursor], 1);
2295 }
2296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2297 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 265);
2298 fatal_exit(1);
2299 }
2300 var_166 = var165;
2301 {
2302 var167 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_166);
2303 }
2304 var_168 = var167;
2305 for(;;) {
2306 {
2307 var169 = ((short int(*)(val* self))((((long)var_168&3)?class_info[((long)var_168&3)]:var_168->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_168); /* is_ok on <var_168:IndexedIterator[Prod]>*/
2308 }
2309 if (var169){
2310 } else {
2311 goto BREAK_label170;
2312 }
2313 {
2314 var171 = ((val*(*)(val* self))((((long)var_168&3)?class_info[((long)var_168&3)]:var_168->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_168); /* item on <var_168:IndexedIterator[Prod]>*/
2315 }
2316 var_no172 = var171;
2317 {
2318 { /* Inline parser_nodes$ANode$location= (var_no172,var_loc164) on <var_no172:Prod> */
2319 var_no172->attrs[COLOR_nitc__parser_nodes__ANode___location].val = var_loc164; /* _location on <var_no172:Prod> */
2320 RET_LABEL173:(void)0;
2321 }
2322 }
2323 {
2324 ((void(*)(val* self))((((long)var_168&3)?class_info[((long)var_168&3)]:var_168->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_168); /* next on <var_168:IndexedIterator[Prod]>*/
2325 }
2326 }
2327 BREAK_label170: (void)0;
2328 {
2329 ((void(*)(val* self))((((long)var_168&3)?class_info[((long)var_168&3)]:var_168->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_168); /* finish on <var_168:IndexedIterator[Prod]>*/
2330 }
2331 var174 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2332 if (unlikely(var174 == NULL)) {
2333 if(catchStack.cursor >= 0){
2334 longjmp(catchStack.envs[catchStack.cursor], 1);
2335 }
2336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2337 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 269);
2338 fatal_exit(1);
2339 }
2340 {
2341 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var174); /* Direct call array$AbstractArray$clear on <var174:Array[Prod]>*/
2342 }
2343 } else {
2344 }
2345 } else {
2346 var175 = self->attrs[COLOR_nitc__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
2347 if (unlikely(var175 == NULL)) {
2348 if(catchStack.cursor >= 0){
2349 longjmp(catchStack.envs[catchStack.cursor], 1);
2350 }
2351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 273);
2353 fatal_exit(1);
2354 }
2355 {
2356 core___core__Array___core__abstract_collection__SimpleCollection__add(var175, var_n); /* Direct call array$Array$add on <var175:Array[Prod]>*/
2357 }
2358 }
2359 }
2360 RET_LABEL:;
2361 }
2362 /* method parser_work$ComputeProdLocationVisitor$init for (self: ComputeProdLocationVisitor) */
2363 void nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init(val* self) {
2364 {
2365 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__ComputeProdLocationVisitor___core__kernel__Object__init]))(self); /* init on <self:ComputeProdLocationVisitor>*/
2366 }
2367 RET_LABEL:;
2368 }
2369 /* method parser_work$TextCollectorVisitor$text for (self: TextCollectorVisitor): String */
2370 val* nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text(val* self) {
2371 val* var /* : String */;
2372 val* var1 /* : String */;
2373 var1 = self->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <self:TextCollectorVisitor> */
2374 if (unlikely(var1 == NULL)) {
2375 if(catchStack.cursor >= 0){
2376 longjmp(catchStack.envs[catchStack.cursor], 1);
2377 }
2378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
2379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
2380 fatal_exit(1);
2381 }
2382 var = var1;
2383 RET_LABEL:;
2384 return var;
2385 }
2386 /* method parser_work$TextCollectorVisitor$text= for (self: TextCollectorVisitor, String) */
2387 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___text_61d(val* self, val* p0) {
2388 self->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val = p0; /* _text on <self:TextCollectorVisitor> */
2389 RET_LABEL:;
2390 }
2391 /* method parser_work$TextCollectorVisitor$visit for (self: TextCollectorVisitor, ANode) */
2392 void nitc__parser_work___nitc__parser_work__TextCollectorVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
2393 val* var_n /* var n: ANode */;
2394 short int var /* : Bool */;
2395 int cltype;
2396 int idtype;
2397 val* var_ /* var : TextCollectorVisitor */;
2398 val* var1 /* : String */;
2399 val* var3 /* : String */;
2400 val* var4 /* : String */;
2401 val* var5 /* : Text */;
2402 var_n = p0;
2403 /* <var_n:ANode> isa Token */
2404 cltype = type_nitc__Token.color;
2405 idtype = type_nitc__Token.id;
2406 if(cltype >= var_n->type->table_size) {
2407 var = 0;
2408 } else {
2409 var = var_n->type->type_table[cltype] == idtype;
2410 }
2411 if (var){
2412 var_ = self;
2413 {
2414 { /* Inline parser_work$TextCollectorVisitor$text (var_) on <var_:TextCollectorVisitor> */
2415 var3 = var_->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val; /* _text on <var_:TextCollectorVisitor> */
2416 if (unlikely(var3 == NULL)) {
2417 if(catchStack.cursor >= 0){
2418 longjmp(catchStack.envs[catchStack.cursor], 1);
2419 }
2420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
2421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_work, 281);
2422 fatal_exit(1);
2423 }
2424 var1 = var3;
2425 RET_LABEL2:(void)0;
2426 }
2427 }
2428 {
2429 var4 = nitc__lexer_work___Token___text(var_n);
2430 }
2431 {
2432 var5 = ((val*(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_text__Text___43d]))(var1, var4); /* + on <var1:String>*/
2433 }
2434 {
2435 { /* Inline parser_work$TextCollectorVisitor$text= (var_,var5) on <var_:TextCollectorVisitor> */
2436 var_->attrs[COLOR_nitc__parser_work__TextCollectorVisitor___text].val = var5; /* _text on <var_:TextCollectorVisitor> */
2437 RET_LABEL6:(void)0;
2438 }
2439 }
2440 } else {
2441 }
2442 {
2443 ((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>*/
2444 }
2445 RET_LABEL:;
2446 }
2447 /* method parser_work$ReduceAction$concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
2448 val* nitc__parser_work___nitc__parser_work__ReduceAction___concat(val* self, val* p0, val* p1) {
2449 val* var /* : Array[Object] */;
2450 val* var_l1 /* var l1: Array[Object] */;
2451 val* var_l2 /* var l2: Array[Object] */;
2452 short int var1 /* : Bool */;
2453 var_l1 = p0;
2454 var_l2 = p1;
2455 {
2456 var1 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_l1);
2457 }
2458 if (var1){
2459 var = var_l2;
2460 goto RET_LABEL;
2461 } else {
2462 }
2463 {
2464 core___core__Sequence___append(var_l1, var_l2); /* Direct call abstract_collection$Sequence$append on <var_l1:Array[Object]>*/
2465 }
2466 var = var_l1;
2467 goto RET_LABEL;
2468 RET_LABEL:;
2469 return var;
2470 }
2471 /* method parser_work$ReduceAction$goto= for (self: ReduceAction, Int) */
2472 void nitc__parser_work___nitc__parser_work__ReduceAction___goto_61d(val* self, long p0) {
2473 self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l = p0; /* _goto on <self:ReduceAction> */
2474 RET_LABEL:;
2475 }
2476 /* method parser_work$ReduceAction$init for (self: ReduceAction) */
2477 void nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init(val* self) {
2478 {
2479 ((void(*)(val* self))(self->class->vft[COLOR_nitc__parser_work___nitc__parser_work__ReduceAction___core__kernel__Object__init]))(self); /* init on <self:ReduceAction>*/
2480 }
2481 RET_LABEL:;
2482 }
2483 /* method parser_work$AExpr$as_id for (self: AExpr): nullable String */
2484 val* nitc__parser_work___AExpr___as_id(val* self) {
2485 val* var /* : nullable String */;
2486 short int var1 /* : Bool */;
2487 int cltype;
2488 int idtype;
2489 val* var2 /* : String */;
2490 short int var3 /* : Bool */;
2491 int cltype4;
2492 int idtype5;
2493 short int var6 /* : Bool */;
2494 val* var7 /* : AExpr */;
2495 val* var9 /* : AExpr */;
2496 short int var10 /* : Bool */;
2497 int cltype11;
2498 int idtype12;
2499 short int var13 /* : Bool */;
2500 val* var14 /* : AExprs */;
2501 val* var16 /* : AExprs */;
2502 val* var17 /* : ANodes[AExpr] */;
2503 val* var19 /* : ANodes[AExpr] */;
2504 short int var20 /* : Bool */;
2505 short int var21 /* : Bool */;
2506 val* var22 /* : AQid */;
2507 val* var24 /* : AQid */;
2508 val* var25 /* : TId */;
2509 val* var27 /* : TId */;
2510 val* var28 /* : String */;
2511 /* <self:AExpr> isa AMethidExpr */
2512 cltype = type_nitc__AMethidExpr.color;
2513 idtype = type_nitc__AMethidExpr.id;
2514 if(cltype >= self->type->table_size) {
2515 var1 = 0;
2516 } else {
2517 var1 = self->type->type_table[cltype] == idtype;
2518 }
2519 if (var1){
2520 {
2521 var2 = nitc__parser_work___Prod___collect_text(self);
2522 }
2523 var = var2;
2524 goto RET_LABEL;
2525 } else {
2526 }
2527 /* <self:AExpr> isa ACallExpr */
2528 cltype4 = type_nitc__ACallExpr.color;
2529 idtype5 = type_nitc__ACallExpr.id;
2530 if(cltype4 >= self->type->table_size) {
2531 var3 = 0;
2532 } else {
2533 var3 = self->type->type_table[cltype4] == idtype5;
2534 }
2535 var6 = !var3;
2536 if (var6){
2537 var = ((val*)NULL);
2538 goto RET_LABEL;
2539 } else {
2540 }
2541 {
2542 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:AExpr(ACallExpr)> */
2543 var9 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AExpr(ACallExpr)> */
2544 if (unlikely(var9 == NULL)) {
2545 if(catchStack.cursor >= 0){
2546 longjmp(catchStack.envs[catchStack.cursor], 1);
2547 }
2548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2549 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
2550 fatal_exit(1);
2551 }
2552 var7 = var9;
2553 RET_LABEL8:(void)0;
2554 }
2555 }
2556 /* <var7:AExpr> isa AImplicitSelfExpr */
2557 cltype11 = type_nitc__AImplicitSelfExpr.color;
2558 idtype12 = type_nitc__AImplicitSelfExpr.id;
2559 if(cltype11 >= var7->type->table_size) {
2560 var10 = 0;
2561 } else {
2562 var10 = var7->type->type_table[cltype11] == idtype12;
2563 }
2564 var13 = !var10;
2565 if (var13){
2566 var = ((val*)NULL);
2567 goto RET_LABEL;
2568 } else {
2569 }
2570 {
2571 { /* Inline parser_nodes$ACallFormExpr$n_args (self) on <self:AExpr(ACallExpr)> */
2572 var16 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:AExpr(ACallExpr)> */
2573 if (unlikely(var16 == NULL)) {
2574 if(catchStack.cursor >= 0){
2575 longjmp(catchStack.envs[catchStack.cursor], 1);
2576 }
2577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2380);
2579 fatal_exit(1);
2580 }
2581 var14 = var16;
2582 RET_LABEL15:(void)0;
2583 }
2584 }
2585 {
2586 { /* Inline parser_nodes$AExprs$n_exprs (var14) on <var14:AExprs> */
2587 var19 = var14->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var14:AExprs> */
2588 if (unlikely(var19 == NULL)) {
2589 if(catchStack.cursor >= 0){
2590 longjmp(catchStack.envs[catchStack.cursor], 1);
2591 }
2592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
2594 fatal_exit(1);
2595 }
2596 var17 = var19;
2597 RET_LABEL18:(void)0;
2598 }
2599 }
2600 {
2601 var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var17);
2602 }
2603 var21 = !var20;
2604 if (var21){
2605 var = ((val*)NULL);
2606 goto RET_LABEL;
2607 } else {
2608 }
2609 {
2610 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:AExpr(ACallExpr)> */
2611 var24 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:AExpr(ACallExpr)> */
2612 if (unlikely(var24 == NULL)) {
2613 if(catchStack.cursor >= 0){
2614 longjmp(catchStack.envs[catchStack.cursor], 1);
2615 }
2616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
2618 fatal_exit(1);
2619 }
2620 var22 = var24;
2621 RET_LABEL23:(void)0;
2622 }
2623 }
2624 {
2625 { /* Inline parser_nodes$AQid$n_id (var22) on <var22:AQid> */
2626 var27 = var22->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var22:AQid> */
2627 if (unlikely(var27 == NULL)) {
2628 if(catchStack.cursor >= 0){
2629 longjmp(catchStack.envs[catchStack.cursor], 1);
2630 }
2631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
2633 fatal_exit(1);
2634 }
2635 var25 = var27;
2636 RET_LABEL26:(void)0;
2637 }
2638 }
2639 {
2640 var28 = nitc__lexer_work___Token___text(var25);
2641 }
2642 var = var28;
2643 goto RET_LABEL;
2644 RET_LABEL:;
2645 return var;
2646 }