misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__parser_work.sep.1.c
1 #include "nit__parser_work.sep.0.h"
2 /* method parser_work#State#state= for (self: State, Int) */
3 void nit__parser_work___nit__parser_work__State___state_61d(val* self, long p0) {
4 self->attrs[COLOR_nit__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 nit__parser_work___nit__parser_work__State___nodes_61d(val* self, val* p0) {
9 self->attrs[COLOR_nit__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 nit__parser_work___nit__parser_work__State___standard__kernel__Object__init(val* self) {
14 {
15 ((void (*)(val* self))(self->class->vft[COLOR_nit__parser_work___nit__parser_work__State___standard__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 nit___nit__Parser___lexer_61d(val* self, val* p0) {
21 self->attrs[COLOR_nit__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 nit___nit__Parser___standard__kernel__Object__init(val* self) {
26 {
27 nit__parser___Parser___build_reduce_table(self); /* Direct call parser#Parser#build_reduce_table on <self:Parser>*/
28 }
29 RET_LABEL:;
30 }
31 /* method parser_work#Parser#go_to for (self: Parser, Int): Int */
32 long nit___nit__Parser___go_to(val* self, long p0) {
33 long var /* : Int */;
34 long var_index /* var index: Int */;
35 long var1 /* : Int */;
36 long var_state /* var state: Int */;
37 long var2 /* : Int */;
38 long var_low /* var low: Int */;
39 long var3 /* : Int */;
40 long var4 /* : Int */;
41 long var6 /* : Int for extern */;
42 long var7 /* : Int */;
43 long var8 /* : Int */;
44 short int var10 /* : Bool */;
45 int cltype;
46 int idtype;
47 const char* var_class_name;
48 long var11 /* : Int */;
49 long var_high /* var high: Int */;
50 short int var12 /* : Bool */;
51 short int var14 /* : Bool */;
52 int cltype15;
53 int idtype16;
54 const char* var_class_name17;
55 short int var18 /* : Bool */;
56 long var19 /* : Int */;
57 short int var21 /* : Bool */;
58 int cltype22;
59 int idtype23;
60 const char* var_class_name24;
61 long var25 /* : Int */;
62 long var26 /* : Int */;
63 long var27 /* : Int */;
64 short int var29 /* : Bool */;
65 int cltype30;
66 int idtype31;
67 const char* var_class_name32;
68 long var33 /* : Int */;
69 long var_middle /* var middle: Int */;
70 long var34 /* : Int */;
71 long var35 /* : Int */;
72 short int var37 /* : Bool */;
73 int cltype38;
74 int idtype39;
75 const char* var_class_name40;
76 long var41 /* : Int */;
77 long var42 /* : Int */;
78 long var43 /* : Int */;
79 short int var45 /* : Bool */;
80 int cltype46;
81 int idtype47;
82 const char* var_class_name48;
83 long var49 /* : Int */;
84 long var_subindex /* var subindex: Int */;
85 long var50 /* : Int */;
86 long var52 /* : Int for extern */;
87 long var_goal /* var goal: Int */;
88 short int var53 /* : Bool */;
89 short int var55 /* : Bool */;
90 int cltype56;
91 int idtype57;
92 const char* var_class_name58;
93 short int var59 /* : Bool */;
94 long var60 /* : Int */;
95 long var61 /* : Int */;
96 short int var63 /* : Bool */;
97 int cltype64;
98 int idtype65;
99 const char* var_class_name66;
100 long var67 /* : Int */;
101 short int var68 /* : Bool */;
102 short int var70 /* : Bool */;
103 int cltype71;
104 int idtype72;
105 const char* var_class_name73;
106 short int var74 /* : Bool */;
107 long var75 /* : Int */;
108 long var76 /* : Int */;
109 short int var78 /* : Bool */;
110 int cltype79;
111 int idtype80;
112 const char* var_class_name81;
113 long var82 /* : Int */;
114 long var83 /* : Int */;
115 long var84 /* : Int */;
116 short int var86 /* : Bool */;
117 int cltype87;
118 int idtype88;
119 const char* var_class_name89;
120 long var90 /* : Int */;
121 long var91 /* : Int */;
122 long var93 /* : Int for extern */;
123 long var94 /* : Int */;
124 long var95 /* : Int */;
125 long var97 /* : Int for extern */;
126 var_index = p0;
127 {
128 var1 = nit___nit__Parser___state(self);
129 }
130 var_state = var1;
131 var2 = 1;
132 var_low = var2;
133 var3 = 0;
134 {
135 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var3) on <self:Parser> */
136 var6 = parser_goto(self, var_index, var3);
137 var4 = var6;
138 goto RET_LABEL5;
139 RET_LABEL5:(void)0;
140 }
141 }
142 var7 = 1;
143 {
144 { /* Inline kernel#Int#- (var4,var7) on <var4:Int> */
145 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
146 /* <var7:Int> isa OTHER */
147 var10 = 1; /* easy <var7:Int> isa OTHER*/
148 if (unlikely(!var10)) {
149 var_class_name = type_standard__Int.name;
150 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
151 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
152 show_backtrace(1);
153 }
154 var11 = var4 - var7;
155 var8 = var11;
156 goto RET_LABEL9;
157 RET_LABEL9:(void)0;
158 }
159 }
160 var_high = var8;
161 for(;;) {
162 {
163 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
164 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
165 /* <var_high:Int> isa OTHER */
166 var14 = 1; /* easy <var_high:Int> isa OTHER*/
167 if (unlikely(!var14)) {
168 var_class_name17 = type_standard__Int.name;
169 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
170 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
171 show_backtrace(1);
172 }
173 var18 = var_low <= var_high;
174 var12 = var18;
175 goto RET_LABEL13;
176 RET_LABEL13:(void)0;
177 }
178 }
179 if (var12){
180 {
181 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
182 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
183 /* <var_high:Int> isa OTHER */
184 var21 = 1; /* easy <var_high:Int> isa OTHER*/
185 if (unlikely(!var21)) {
186 var_class_name24 = type_standard__Int.name;
187 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
188 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
189 show_backtrace(1);
190 }
191 var25 = var_low + var_high;
192 var19 = var25;
193 goto RET_LABEL20;
194 RET_LABEL20:(void)0;
195 }
196 }
197 var26 = 2;
198 {
199 { /* Inline kernel#Int#/ (var19,var26) on <var19:Int> */
200 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
201 /* <var26:Int> isa OTHER */
202 var29 = 1; /* easy <var26:Int> isa OTHER*/
203 if (unlikely(!var29)) {
204 var_class_name32 = type_standard__Int.name;
205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
206 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
207 show_backtrace(1);
208 }
209 var33 = var19 / var26;
210 var27 = var33;
211 goto RET_LABEL28;
212 RET_LABEL28:(void)0;
213 }
214 }
215 var_middle = var27;
216 var34 = 2;
217 {
218 { /* Inline kernel#Int#* (var_middle,var34) on <var_middle:Int> */
219 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
220 /* <var34:Int> isa OTHER */
221 var37 = 1; /* easy <var34:Int> isa OTHER*/
222 if (unlikely(!var37)) {
223 var_class_name40 = type_standard__Int.name;
224 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
225 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
226 show_backtrace(1);
227 }
228 var41 = var_middle * var34;
229 var35 = var41;
230 goto RET_LABEL36;
231 RET_LABEL36:(void)0;
232 }
233 }
234 var42 = 1;
235 {
236 { /* Inline kernel#Int#+ (var35,var42) on <var35:Int> */
237 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
238 /* <var42:Int> isa OTHER */
239 var45 = 1; /* easy <var42:Int> isa OTHER*/
240 if (unlikely(!var45)) {
241 var_class_name48 = type_standard__Int.name;
242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
243 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
244 show_backtrace(1);
245 }
246 var49 = var35 + var42;
247 var43 = var49;
248 goto RET_LABEL44;
249 RET_LABEL44:(void)0;
250 }
251 }
252 var_subindex = var43;
253 {
254 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var_subindex) on <self:Parser> */
255 var52 = parser_goto(self, var_index, var_subindex);
256 var50 = var52;
257 goto RET_LABEL51;
258 RET_LABEL51:(void)0;
259 }
260 }
261 var_goal = var50;
262 {
263 { /* Inline kernel#Int#< (var_state,var_goal) on <var_state:Int> */
264 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
265 /* <var_goal:Int> isa OTHER */
266 var55 = 1; /* easy <var_goal:Int> isa OTHER*/
267 if (unlikely(!var55)) {
268 var_class_name58 = type_standard__Int.name;
269 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
270 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
271 show_backtrace(1);
272 }
273 var59 = var_state < var_goal;
274 var53 = var59;
275 goto RET_LABEL54;
276 RET_LABEL54:(void)0;
277 }
278 }
279 if (var53){
280 var60 = 1;
281 {
282 { /* Inline kernel#Int#- (var_middle,var60) on <var_middle:Int> */
283 /* Covariant cast for argument 0 (i) <var60:Int> isa OTHER */
284 /* <var60:Int> isa OTHER */
285 var63 = 1; /* easy <var60:Int> isa OTHER*/
286 if (unlikely(!var63)) {
287 var_class_name66 = type_standard__Int.name;
288 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
289 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
290 show_backtrace(1);
291 }
292 var67 = var_middle - var60;
293 var61 = var67;
294 goto RET_LABEL62;
295 RET_LABEL62:(void)0;
296 }
297 }
298 var_high = var61;
299 } else {
300 {
301 { /* Inline kernel#Int#> (var_state,var_goal) on <var_state:Int> */
302 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
303 /* <var_goal:Int> isa OTHER */
304 var70 = 1; /* easy <var_goal:Int> isa OTHER*/
305 if (unlikely(!var70)) {
306 var_class_name73 = type_standard__Int.name;
307 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
308 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
309 show_backtrace(1);
310 }
311 var74 = var_state > var_goal;
312 var68 = var74;
313 goto RET_LABEL69;
314 RET_LABEL69:(void)0;
315 }
316 }
317 if (var68){
318 var75 = 1;
319 {
320 { /* Inline kernel#Int#+ (var_middle,var75) on <var_middle:Int> */
321 /* Covariant cast for argument 0 (i) <var75:Int> isa OTHER */
322 /* <var75:Int> isa OTHER */
323 var78 = 1; /* easy <var75:Int> isa OTHER*/
324 if (unlikely(!var78)) {
325 var_class_name81 = type_standard__Int.name;
326 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
327 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
328 show_backtrace(1);
329 }
330 var82 = var_middle + var75;
331 var76 = var82;
332 goto RET_LABEL77;
333 RET_LABEL77:(void)0;
334 }
335 }
336 var_low = var76;
337 } else {
338 var83 = 1;
339 {
340 { /* Inline kernel#Int#+ (var_subindex,var83) on <var_subindex:Int> */
341 /* Covariant cast for argument 0 (i) <var83:Int> isa OTHER */
342 /* <var83:Int> isa OTHER */
343 var86 = 1; /* easy <var83:Int> isa OTHER*/
344 if (unlikely(!var86)) {
345 var_class_name89 = type_standard__Int.name;
346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name89);
347 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
348 show_backtrace(1);
349 }
350 var90 = var_subindex + var83;
351 var84 = var90;
352 goto RET_LABEL85;
353 RET_LABEL85:(void)0;
354 }
355 }
356 {
357 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var84) on <self:Parser> */
358 var93 = parser_goto(self, var_index, var84);
359 var91 = var93;
360 goto RET_LABEL92;
361 RET_LABEL92:(void)0;
362 }
363 }
364 var = var91;
365 goto RET_LABEL;
366 }
367 }
368 } else {
369 goto BREAK_label;
370 }
371 }
372 BREAK_label: (void)0;
373 var94 = 2;
374 {
375 { /* Inline tables#TablesCapable#parser_goto (self,var_index,var94) on <self:Parser> */
376 var97 = parser_goto(self, var_index, var94);
377 var95 = var97;
378 goto RET_LABEL96;
379 RET_LABEL96:(void)0;
380 }
381 }
382 var = var95;
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 nit___nit__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 long var2 /* : Int */;
394 short int var4 /* : Bool */;
395 int cltype;
396 int idtype;
397 const char* var_class_name;
398 long var5 /* : Int */;
399 long var_pos /* var pos: Int */;
400 val* var6 /* : Array[State] */;
401 long var7 /* : Int */;
402 long var9 /* : Int */;
403 short int var10 /* : Bool */;
404 short int var12 /* : Bool */;
405 int cltype13;
406 int idtype14;
407 const char* var_class_name15;
408 short int var16 /* : Bool */;
409 val* var17 /* : Array[State] */;
410 val* var18 /* : nullable Object */;
411 val* var_state /* var state: State */;
412 val* var19 /* : Array[State] */;
413 val* var20 /* : State */;
414 var_numstate = p0;
415 var_list_node = p1;
416 var = self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
417 var1 = 1;
418 {
419 { /* Inline kernel#Int#+ (var,var1) on <var:Int> */
420 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
421 /* <var1:Int> isa OTHER */
422 var4 = 1; /* easy <var1:Int> isa OTHER*/
423 if (unlikely(!var4)) {
424 var_class_name = type_standard__Int.name;
425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
426 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
427 show_backtrace(1);
428 }
429 var5 = var + var1;
430 var2 = var5;
431 goto RET_LABEL3;
432 RET_LABEL3:(void)0;
433 }
434 }
435 var_pos = var2;
436 self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l = var_pos; /* _stack_pos on <self:Parser> */
437 var6 = self->attrs[COLOR_nit__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
438 if (unlikely(var6 == NULL)) {
439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
440 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 75);
441 show_backtrace(1);
442 }
443 {
444 { /* Inline array#AbstractArrayRead#length (var6) on <var6:Array[State]> */
445 var9 = var6->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var6:Array[State]> */
446 var7 = var9;
447 RET_LABEL8:(void)0;
448 }
449 }
450 {
451 { /* Inline kernel#Int#< (var_pos,var7) on <var_pos:Int> */
452 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
453 /* <var7:Int> isa OTHER */
454 var12 = 1; /* easy <var7:Int> isa OTHER*/
455 if (unlikely(!var12)) {
456 var_class_name15 = type_standard__Int.name;
457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
458 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
459 show_backtrace(1);
460 }
461 var16 = var_pos < var7;
462 var10 = var16;
463 goto RET_LABEL11;
464 RET_LABEL11:(void)0;
465 }
466 }
467 if (var10){
468 var17 = self->attrs[COLOR_nit__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
469 if (unlikely(var17 == NULL)) {
470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
471 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 76);
472 show_backtrace(1);
473 }
474 {
475 var18 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var17, var_pos);
476 }
477 var_state = var18;
478 var_state->attrs[COLOR_nit__parser_work__State___state].l = var_numstate; /* _state on <var_state:State> */
479 var_state->attrs[COLOR_nit__parser_work__State___nodes].val = var_list_node; /* _nodes on <var_state:State> */
480 } else {
481 var19 = self->attrs[COLOR_nit__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
482 if (unlikely(var19 == NULL)) {
483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 80);
485 show_backtrace(1);
486 }
487 var20 = NEW_nit__parser_work__State(&type_nit__parser_work__State);
488 {
489 ((void (*)(val* self, long p0))(var20->class->vft[COLOR_nit__parser_work__State__state_61d]))(var20, var_numstate) /* state= on <var20:State>*/;
490 }
491 {
492 ((void (*)(val* self, val* p0))(var20->class->vft[COLOR_nit__parser_work__State__nodes_61d]))(var20, var_list_node) /* nodes= on <var20:State>*/;
493 }
494 {
495 ((void (*)(val* self))(var20->class->vft[COLOR_standard__kernel__Object__init]))(var20) /* init on <var20:State>*/;
496 }
497 {
498 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var19, var20); /* Direct call array#AbstractArray#push on <var19:Array[State]>*/
499 }
500 }
501 RET_LABEL:;
502 }
503 /* method parser_work#Parser#state for (self: Parser): Int */
504 long nit___nit__Parser___state(val* self) {
505 long var /* : Int */;
506 val* var1 /* : Array[State] */;
507 long var2 /* : Int */;
508 val* var3 /* : nullable Object */;
509 long var4 /* : Int */;
510 var1 = self->attrs[COLOR_nit__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
511 if (unlikely(var1 == NULL)) {
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 87);
514 show_backtrace(1);
515 }
516 var2 = self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
517 {
518 var3 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var1, var2);
519 }
520 var4 = var3->attrs[COLOR_nit__parser_work__State___state].l; /* _state on <var3:nullable Object(State)> */
521 var = var4;
522 goto RET_LABEL;
523 RET_LABEL:;
524 return var;
525 }
526 /* method parser_work#Parser#pop for (self: Parser): nullable Object */
527 val* nit___nit__Parser___pop(val* self) {
528 val* var /* : nullable Object */;
529 val* var1 /* : Array[State] */;
530 long var2 /* : Int */;
531 val* var3 /* : nullable Object */;
532 val* var4 /* : nullable Object */;
533 val* var_res /* var res: nullable Object */;
534 long var5 /* : Int */;
535 long var6 /* : Int */;
536 long var7 /* : Int */;
537 short int var9 /* : Bool */;
538 int cltype;
539 int idtype;
540 const char* var_class_name;
541 long var10 /* : Int */;
542 var1 = self->attrs[COLOR_nit__parser_work__Parser___stack].val; /* _stack on <self:Parser> */
543 if (unlikely(var1 == NULL)) {
544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stack");
545 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 93);
546 show_backtrace(1);
547 }
548 var2 = self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
549 {
550 var3 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var1, var2);
551 }
552 var4 = var3->attrs[COLOR_nit__parser_work__State___nodes].val; /* _nodes on <var3:nullable Object(State)> */
553 var_res = var4;
554 var5 = self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l; /* _stack_pos on <self:Parser> */
555 var6 = 1;
556 {
557 { /* Inline kernel#Int#- (var5,var6) on <var5:Int> */
558 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
559 /* <var6:Int> isa OTHER */
560 var9 = 1; /* easy <var6:Int> isa OTHER*/
561 if (unlikely(!var9)) {
562 var_class_name = type_standard__Int.name;
563 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
564 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
565 show_backtrace(1);
566 }
567 var10 = var5 - var6;
568 var7 = var10;
569 goto RET_LABEL8;
570 RET_LABEL8:(void)0;
571 }
572 }
573 self->attrs[COLOR_nit__parser_work__Parser___stack_pos].l = var7; /* _stack_pos on <self:Parser> */
574 var = var_res;
575 goto RET_LABEL;
576 RET_LABEL:;
577 return var;
578 }
579 /* method parser_work#Parser#parse for (self: Parser): Start */
580 val* nit___nit__Parser___parse(val* self) {
581 val* var /* : Start */;
582 long var1 /* : Int */;
583 val* var2 /* : null */;
584 val* var3 /* : Lexer */;
585 val* var_lexer /* var lexer: Lexer */;
586 val* var4 /* : Token */;
587 val* var_token /* var token: Token */;
588 short int var5 /* : Bool */;
589 int cltype;
590 int idtype;
591 val* var6 /* : Start */;
592 val* var7 /* : null */;
593 long var8 /* : Int */;
594 long var_state /* var state: Int */;
595 long var9 /* : Int */;
596 long var_index /* var index: Int */;
597 long var10 /* : Int */;
598 long var11 /* : Int */;
599 long var13 /* : Int for extern */;
600 long var_action_type /* var action_type: Int */;
601 long var14 /* : Int */;
602 long var15 /* : Int */;
603 long var17 /* : Int for extern */;
604 long var_action_value /* var action_value: Int */;
605 long var18 /* : Int */;
606 long var_low /* var low: Int */;
607 long var19 /* : Int */;
608 long var20 /* : Int */;
609 long var22 /* : Int for extern */;
610 long var23 /* : Int */;
611 long var24 /* : Int */;
612 short int var26 /* : Bool */;
613 int cltype27;
614 int idtype28;
615 const char* var_class_name;
616 long var29 /* : Int */;
617 long var_high /* var high: Int */;
618 short int var30 /* : Bool */;
619 short int var32 /* : Bool */;
620 int cltype33;
621 int idtype34;
622 const char* var_class_name35;
623 short int var36 /* : Bool */;
624 long var37 /* : Int */;
625 short int var39 /* : Bool */;
626 int cltype40;
627 int idtype41;
628 const char* var_class_name42;
629 long var43 /* : Int */;
630 long var44 /* : Int */;
631 long var45 /* : Int */;
632 short int var47 /* : Bool */;
633 int cltype48;
634 int idtype49;
635 const char* var_class_name50;
636 long var51 /* : Int */;
637 long var_middle /* var middle: Int */;
638 long var52 /* : Int */;
639 long var53 /* : Int */;
640 short int var55 /* : Bool */;
641 int cltype56;
642 int idtype57;
643 const char* var_class_name58;
644 long var59 /* : Int */;
645 long var60 /* : Int */;
646 long var61 /* : Int */;
647 short int var63 /* : Bool */;
648 int cltype64;
649 int idtype65;
650 const char* var_class_name66;
651 long var67 /* : Int */;
652 long var_subindex /* var subindex: Int */;
653 long var68 /* : Int */;
654 long var70 /* : Int for extern */;
655 long var_goal /* var goal: Int */;
656 short int var71 /* : Bool */;
657 short int var73 /* : Bool */;
658 int cltype74;
659 int idtype75;
660 const char* var_class_name76;
661 short int var77 /* : Bool */;
662 long var78 /* : Int */;
663 long var79 /* : Int */;
664 short int var81 /* : Bool */;
665 int cltype82;
666 int idtype83;
667 const char* var_class_name84;
668 long var85 /* : Int */;
669 short int var86 /* : Bool */;
670 short int var88 /* : Bool */;
671 int cltype89;
672 int idtype90;
673 const char* var_class_name91;
674 short int var92 /* : Bool */;
675 long var93 /* : Int */;
676 long var94 /* : Int */;
677 short int var96 /* : Bool */;
678 int cltype97;
679 int idtype98;
680 const char* var_class_name99;
681 long var100 /* : Int */;
682 long var101 /* : Int */;
683 long var102 /* : Int */;
684 short int var104 /* : Bool */;
685 int cltype105;
686 int idtype106;
687 const char* var_class_name107;
688 long var108 /* : Int */;
689 long var109 /* : Int */;
690 long var111 /* : Int for extern */;
691 long var112 /* : Int */;
692 long var113 /* : Int */;
693 short int var115 /* : Bool */;
694 int cltype116;
695 int idtype117;
696 const char* var_class_name118;
697 long var119 /* : Int */;
698 long var120 /* : Int */;
699 long var122 /* : Int for extern */;
700 long var123 /* : Int */;
701 short int var124 /* : Bool */;
702 short int var126 /* : Bool */;
703 val* var127 /* : Token */;
704 long var128 /* : Int */;
705 short int var129 /* : Bool */;
706 short int var131 /* : Bool */;
707 val* var132 /* : Array[ReduceAction] */;
708 val* var133 /* : nullable Object */;
709 long var134 /* : Int */;
710 short int var135 /* : Bool */;
711 short int var137 /* : Bool */;
712 val* var138 /* : Token */;
713 val* var_node2 /* var node2: Token */;
714 short int var139 /* : Bool */;
715 int cltype140;
716 int idtype141;
717 val* var142 /* : nullable Object */;
718 val* var_node1 /* var node1: nullable Object */;
719 short int var143 /* : Bool */;
720 int cltype144;
721 int idtype145;
722 val* var146 /* : Start */;
723 val* var_node /* var node: Start */;
724 val* var147 /* : ComputeProdLocationVisitor */;
725 long var149 /* : Int */;
726 short int var150 /* : Bool */;
727 short int var152 /* : Bool */;
728 short int var153 /* : Bool */;
729 short int var154 /* : Bool */;
730 val* var155 /* : Token */;
731 val* var157 /* : AParserError */;
732 static val* varonce;
733 val* var158 /* : String */;
734 char* var159 /* : NativeString */;
735 long var160 /* : Int */;
736 val* var161 /* : FlatString */;
737 static val* varonce162;
738 val* var163 /* : String */;
739 char* var164 /* : NativeString */;
740 long var165 /* : Int */;
741 val* var166 /* : FlatString */;
742 val* var167 /* : Array[Object] */;
743 long var168 /* : Int */;
744 val* var169 /* : NativeArray[Object] */;
745 val* var170 /* : String */;
746 val* var171 /* : Location */;
747 val* var173 /* : Location */;
748 val* var_node2174 /* var node2: AParserError */;
749 val* var175 /* : Start */;
750 val* var176 /* : null */;
751 val* var_node177 /* var node: Start */;
752 var1 = 0;
753 var2 = NULL;
754 {
755 nit___nit__Parser___push(self, var1, var2); /* Direct call parser_work#Parser#push on <self:Parser>*/
756 }
757 var3 = self->attrs[COLOR_nit__parser_work__Parser___lexer].val; /* _lexer on <self:Parser> */
758 if (unlikely(var3 == NULL)) {
759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lexer");
760 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 103);
761 show_backtrace(1);
762 }
763 var_lexer = var3;
764 for(;;) {
765 {
766 var4 = nit___nit__Lexer___peek(var_lexer);
767 }
768 var_token = var4;
769 /* <var_token:Token> isa AError */
770 cltype = type_nit__AError.color;
771 idtype = type_nit__AError.id;
772 if(cltype >= var_token->type->table_size) {
773 var5 = 0;
774 } else {
775 var5 = var_token->type->type_table[cltype] == idtype;
776 }
777 if (var5){
778 var6 = NEW_nit__Start(&type_nit__Start);
779 var7 = NULL;
780 {
781 ((void (*)(val* self, val* p0))(var6->class->vft[COLOR_nit__parser_nodes__Start__n_base_61d]))(var6, var7) /* n_base= on <var6:Start>*/;
782 }
783 {
784 ((void (*)(val* self, val* p0))(var6->class->vft[COLOR_nit__parser_nodes__Start__n_eof_61d]))(var6, var_token) /* n_eof= on <var6:Start>*/;
785 }
786 {
787 ((void (*)(val* self))(var6->class->vft[COLOR_standard__kernel__Object__init]))(var6) /* init on <var6:Start>*/;
788 }
789 var = var6;
790 goto RET_LABEL;
791 } else {
792 }
793 {
794 var8 = nit___nit__Parser___state(self);
795 }
796 var_state = var8;
797 {
798 var9 = ((long (*)(val* self))(var_token->class->vft[COLOR_nit__lexer_work__Token__parser_index]))(var_token) /* parser_index on <var_token:Token>*/;
799 }
800 var_index = var9;
801 var10 = 2;
802 {
803 { /* Inline tables#TablesCapable#parser_action (self,var_state,var10) on <self:Parser> */
804 var13 = parser_action(self, var_state, var10);
805 var11 = var13;
806 goto RET_LABEL12;
807 RET_LABEL12:(void)0;
808 }
809 }
810 var_action_type = var11;
811 var14 = 3;
812 {
813 { /* Inline tables#TablesCapable#parser_action (self,var_state,var14) on <self:Parser> */
814 var17 = parser_action(self, var_state, var14);
815 var15 = var17;
816 goto RET_LABEL16;
817 RET_LABEL16:(void)0;
818 }
819 }
820 var_action_value = var15;
821 var18 = 1;
822 var_low = var18;
823 var19 = 0;
824 {
825 { /* Inline tables#TablesCapable#parser_action (self,var_state,var19) on <self:Parser> */
826 var22 = parser_action(self, var_state, var19);
827 var20 = var22;
828 goto RET_LABEL21;
829 RET_LABEL21:(void)0;
830 }
831 }
832 var23 = 1;
833 {
834 { /* Inline kernel#Int#- (var20,var23) on <var20:Int> */
835 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
836 /* <var23:Int> isa OTHER */
837 var26 = 1; /* easy <var23:Int> isa OTHER*/
838 if (unlikely(!var26)) {
839 var_class_name = type_standard__Int.name;
840 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
841 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
842 show_backtrace(1);
843 }
844 var29 = var20 - var23;
845 var24 = var29;
846 goto RET_LABEL25;
847 RET_LABEL25:(void)0;
848 }
849 }
850 var_high = var24;
851 for(;;) {
852 {
853 { /* Inline kernel#Int#<= (var_low,var_high) on <var_low:Int> */
854 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
855 /* <var_high:Int> isa OTHER */
856 var32 = 1; /* easy <var_high:Int> isa OTHER*/
857 if (unlikely(!var32)) {
858 var_class_name35 = type_standard__Int.name;
859 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
860 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
861 show_backtrace(1);
862 }
863 var36 = var_low <= var_high;
864 var30 = var36;
865 goto RET_LABEL31;
866 RET_LABEL31:(void)0;
867 }
868 }
869 if (var30){
870 {
871 { /* Inline kernel#Int#+ (var_low,var_high) on <var_low:Int> */
872 /* Covariant cast for argument 0 (i) <var_high:Int> isa OTHER */
873 /* <var_high:Int> isa OTHER */
874 var39 = 1; /* easy <var_high:Int> isa OTHER*/
875 if (unlikely(!var39)) {
876 var_class_name42 = type_standard__Int.name;
877 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
878 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
879 show_backtrace(1);
880 }
881 var43 = var_low + var_high;
882 var37 = var43;
883 goto RET_LABEL38;
884 RET_LABEL38:(void)0;
885 }
886 }
887 var44 = 2;
888 {
889 { /* Inline kernel#Int#/ (var37,var44) on <var37:Int> */
890 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
891 /* <var44:Int> isa OTHER */
892 var47 = 1; /* easy <var44:Int> isa OTHER*/
893 if (unlikely(!var47)) {
894 var_class_name50 = type_standard__Int.name;
895 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
896 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
897 show_backtrace(1);
898 }
899 var51 = var37 / var44;
900 var45 = var51;
901 goto RET_LABEL46;
902 RET_LABEL46:(void)0;
903 }
904 }
905 var_middle = var45;
906 var52 = 3;
907 {
908 { /* Inline kernel#Int#* (var_middle,var52) on <var_middle:Int> */
909 /* Covariant cast for argument 0 (i) <var52:Int> isa OTHER */
910 /* <var52:Int> isa OTHER */
911 var55 = 1; /* easy <var52:Int> isa OTHER*/
912 if (unlikely(!var55)) {
913 var_class_name58 = type_standard__Int.name;
914 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
915 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
916 show_backtrace(1);
917 }
918 var59 = var_middle * var52;
919 var53 = var59;
920 goto RET_LABEL54;
921 RET_LABEL54:(void)0;
922 }
923 }
924 var60 = 1;
925 {
926 { /* Inline kernel#Int#+ (var53,var60) on <var53:Int> */
927 /* Covariant cast for argument 0 (i) <var60:Int> isa OTHER */
928 /* <var60:Int> isa OTHER */
929 var63 = 1; /* easy <var60:Int> isa OTHER*/
930 if (unlikely(!var63)) {
931 var_class_name66 = type_standard__Int.name;
932 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name66);
933 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
934 show_backtrace(1);
935 }
936 var67 = var53 + var60;
937 var61 = var67;
938 goto RET_LABEL62;
939 RET_LABEL62:(void)0;
940 }
941 }
942 var_subindex = var61;
943 {
944 { /* Inline tables#TablesCapable#parser_action (self,var_state,var_subindex) on <self:Parser> */
945 var70 = parser_action(self, var_state, var_subindex);
946 var68 = var70;
947 goto RET_LABEL69;
948 RET_LABEL69:(void)0;
949 }
950 }
951 var_goal = var68;
952 {
953 { /* Inline kernel#Int#< (var_index,var_goal) on <var_index:Int> */
954 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
955 /* <var_goal:Int> isa OTHER */
956 var73 = 1; /* easy <var_goal:Int> isa OTHER*/
957 if (unlikely(!var73)) {
958 var_class_name76 = type_standard__Int.name;
959 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
960 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
961 show_backtrace(1);
962 }
963 var77 = var_index < var_goal;
964 var71 = var77;
965 goto RET_LABEL72;
966 RET_LABEL72:(void)0;
967 }
968 }
969 if (var71){
970 var78 = 1;
971 {
972 { /* Inline kernel#Int#- (var_middle,var78) on <var_middle:Int> */
973 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
974 /* <var78:Int> isa OTHER */
975 var81 = 1; /* easy <var78:Int> isa OTHER*/
976 if (unlikely(!var81)) {
977 var_class_name84 = type_standard__Int.name;
978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84);
979 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
980 show_backtrace(1);
981 }
982 var85 = var_middle - var78;
983 var79 = var85;
984 goto RET_LABEL80;
985 RET_LABEL80:(void)0;
986 }
987 }
988 var_high = var79;
989 } else {
990 {
991 { /* Inline kernel#Int#> (var_index,var_goal) on <var_index:Int> */
992 /* Covariant cast for argument 0 (i) <var_goal:Int> isa OTHER */
993 /* <var_goal:Int> isa OTHER */
994 var88 = 1; /* easy <var_goal:Int> isa OTHER*/
995 if (unlikely(!var88)) {
996 var_class_name91 = type_standard__Int.name;
997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
998 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
999 show_backtrace(1);
1000 }
1001 var92 = var_index > var_goal;
1002 var86 = var92;
1003 goto RET_LABEL87;
1004 RET_LABEL87:(void)0;
1005 }
1006 }
1007 if (var86){
1008 var93 = 1;
1009 {
1010 { /* Inline kernel#Int#+ (var_middle,var93) on <var_middle:Int> */
1011 /* Covariant cast for argument 0 (i) <var93:Int> isa OTHER */
1012 /* <var93:Int> isa OTHER */
1013 var96 = 1; /* easy <var93:Int> isa OTHER*/
1014 if (unlikely(!var96)) {
1015 var_class_name99 = type_standard__Int.name;
1016 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name99);
1017 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1018 show_backtrace(1);
1019 }
1020 var100 = var_middle + var93;
1021 var94 = var100;
1022 goto RET_LABEL95;
1023 RET_LABEL95:(void)0;
1024 }
1025 }
1026 var_low = var94;
1027 } else {
1028 var101 = 1;
1029 {
1030 { /* Inline kernel#Int#+ (var_subindex,var101) on <var_subindex:Int> */
1031 /* Covariant cast for argument 0 (i) <var101:Int> isa OTHER */
1032 /* <var101:Int> isa OTHER */
1033 var104 = 1; /* easy <var101:Int> isa OTHER*/
1034 if (unlikely(!var104)) {
1035 var_class_name107 = type_standard__Int.name;
1036 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name107);
1037 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1038 show_backtrace(1);
1039 }
1040 var108 = var_subindex + var101;
1041 var102 = var108;
1042 goto RET_LABEL103;
1043 RET_LABEL103:(void)0;
1044 }
1045 }
1046 {
1047 { /* Inline tables#TablesCapable#parser_action (self,var_state,var102) on <self:Parser> */
1048 var111 = parser_action(self, var_state, var102);
1049 var109 = var111;
1050 goto RET_LABEL110;
1051 RET_LABEL110:(void)0;
1052 }
1053 }
1054 var_action_type = var109;
1055 var112 = 2;
1056 {
1057 { /* Inline kernel#Int#+ (var_subindex,var112) on <var_subindex:Int> */
1058 /* Covariant cast for argument 0 (i) <var112:Int> isa OTHER */
1059 /* <var112:Int> isa OTHER */
1060 var115 = 1; /* easy <var112:Int> isa OTHER*/
1061 if (unlikely(!var115)) {
1062 var_class_name118 = type_standard__Int.name;
1063 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name118);
1064 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1065 show_backtrace(1);
1066 }
1067 var119 = var_subindex + var112;
1068 var113 = var119;
1069 goto RET_LABEL114;
1070 RET_LABEL114:(void)0;
1071 }
1072 }
1073 {
1074 { /* Inline tables#TablesCapable#parser_action (self,var_state,var113) on <self:Parser> */
1075 var122 = parser_action(self, var_state, var113);
1076 var120 = var122;
1077 goto RET_LABEL121;
1078 RET_LABEL121:(void)0;
1079 }
1080 }
1081 var_action_value = var120;
1082 goto BREAK_label;
1083 }
1084 }
1085 } else {
1086 goto BREAK_label;
1087 }
1088 }
1089 BREAK_label: (void)0;
1090 var123 = 0;
1091 {
1092 { /* Inline kernel#Int#== (var_action_type,var123) on <var_action_type:Int> */
1093 var126 = var_action_type == var123;
1094 var124 = var126;
1095 goto RET_LABEL125;
1096 RET_LABEL125:(void)0;
1097 }
1098 }
1099 if (var124){
1100 {
1101 var127 = nit___nit__Lexer___next(var_lexer);
1102 }
1103 {
1104 nit___nit__Parser___push(self, var_action_value, var127); /* Direct call parser_work#Parser#push on <self:Parser>*/
1105 }
1106 } else {
1107 var128 = 1;
1108 {
1109 { /* Inline kernel#Int#== (var_action_type,var128) on <var_action_type:Int> */
1110 var131 = var_action_type == var128;
1111 var129 = var131;
1112 goto RET_LABEL130;
1113 RET_LABEL130:(void)0;
1114 }
1115 }
1116 if (var129){
1117 var132 = self->attrs[COLOR_nit__parser_work__Parser___reduce_table].val; /* _reduce_table on <self:Parser> */
1118 if (unlikely(var132 == NULL)) {
1119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _reduce_table");
1120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 137);
1121 show_backtrace(1);
1122 }
1123 {
1124 var133 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var132, var_action_value);
1125 }
1126 {
1127 ((void (*)(val* self, val* p0))(var133->class->vft[COLOR_nit__parser_work__ReduceAction__action]))(var133, self) /* action on <var133:nullable Object(ReduceAction)>*/;
1128 }
1129 } else {
1130 var134 = 2;
1131 {
1132 { /* Inline kernel#Int#== (var_action_type,var134) on <var_action_type:Int> */
1133 var137 = var_action_type == var134;
1134 var135 = var137;
1135 goto RET_LABEL136;
1136 RET_LABEL136:(void)0;
1137 }
1138 }
1139 if (var135){
1140 {
1141 var138 = nit___nit__Lexer___next(var_lexer);
1142 }
1143 var_node2 = var138;
1144 /* <var_node2:Token> isa EOF */
1145 cltype140 = type_nit__EOF.color;
1146 idtype141 = type_nit__EOF.id;
1147 if(cltype140 >= var_node2->type->table_size) {
1148 var139 = 0;
1149 } else {
1150 var139 = var_node2->type->type_table[cltype140] == idtype141;
1151 }
1152 if (unlikely(!var139)) {
1153 PRINT_ERROR("Runtime error: %s", "Assert failed");
1154 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 140);
1155 show_backtrace(1);
1156 }
1157 {
1158 var142 = nit___nit__Parser___pop(self);
1159 }
1160 var_node1 = var142;
1161 /* <var_node1:nullable Object> isa AModule */
1162 cltype144 = type_nit__AModule.color;
1163 idtype145 = type_nit__AModule.id;
1164 if(var_node1 == NULL) {
1165 var143 = 0;
1166 } else {
1167 if(cltype144 >= var_node1->type->table_size) {
1168 var143 = 0;
1169 } else {
1170 var143 = var_node1->type->type_table[cltype144] == idtype145;
1171 }
1172 }
1173 if (unlikely(!var143)) {
1174 PRINT_ERROR("Runtime error: %s", "Assert failed");
1175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 142);
1176 show_backtrace(1);
1177 }
1178 var146 = NEW_nit__Start(&type_nit__Start);
1179 {
1180 ((void (*)(val* self, val* p0))(var146->class->vft[COLOR_nit__parser_nodes__Start__n_base_61d]))(var146, var_node1) /* n_base= on <var146:Start>*/;
1181 }
1182 {
1183 ((void (*)(val* self, val* p0))(var146->class->vft[COLOR_nit__parser_nodes__Start__n_eof_61d]))(var146, var_node2) /* n_eof= on <var146:Start>*/;
1184 }
1185 {
1186 ((void (*)(val* self))(var146->class->vft[COLOR_standard__kernel__Object__init]))(var146) /* init on <var146:Start>*/;
1187 }
1188 var_node = var146;
1189 var147 = NEW_nit__parser_work__ComputeProdLocationVisitor(&type_nit__parser_work__ComputeProdLocationVisitor);
1190 {
1191 { /* Inline kernel#Object#init (var147) on <var147:ComputeProdLocationVisitor> */
1192 RET_LABEL148:(void)0;
1193 }
1194 }
1195 {
1196 nit___nit__Visitor___enter_visit(var147, var_node); /* Direct call parser_nodes#Visitor#enter_visit on <var147:ComputeProdLocationVisitor>*/
1197 }
1198 var = var_node;
1199 goto RET_LABEL;
1200 } else {
1201 var149 = 3;
1202 {
1203 { /* Inline kernel#Int#== (var_action_type,var149) on <var_action_type:Int> */
1204 var152 = var_action_type == var149;
1205 var150 = var152;
1206 goto RET_LABEL151;
1207 RET_LABEL151:(void)0;
1208 }
1209 }
1210 if (var150){
1211 for(;;) {
1212 var153 = var_token->attrs[COLOR_nit__parser_nodes__ANode___location].val != NULL; /* _location on <var_token:Token> */
1213 var154 = !var153;
1214 if (var154){
1215 {
1216 var155 = nit___nit__Lexer___next(var_lexer);
1217 }
1218 var_token = var155;
1219 } else {
1220 goto BREAK_label156;
1221 }
1222 }
1223 BREAK_label156: (void)0;
1224 var157 = NEW_nit__AParserError(&type_nit__AParserError);
1225 if (varonce) {
1226 var158 = varonce;
1227 } else {
1228 var159 = "Syntax error: unexpected ";
1229 var160 = 25;
1230 var161 = standard___standard__NativeString___to_s_with_length(var159, var160);
1231 var158 = var161;
1232 varonce = var158;
1233 }
1234 if (varonce162) {
1235 var163 = varonce162;
1236 } else {
1237 var164 = ".";
1238 var165 = 1;
1239 var166 = standard___standard__NativeString___to_s_with_length(var164, var165);
1240 var163 = var166;
1241 varonce162 = var163;
1242 }
1243 var167 = NEW_standard__Array(&type_standard__Array__standard__Object);
1244 { /* var167 = array_instance Array[Object] */
1245 var168 = 3;
1246 var169 = NEW_standard__NativeArray(var168, &type_standard__NativeArray__standard__Object);
1247 ((struct instance_standard__NativeArray*)var169)->values[0] = (val*) var158;
1248 ((struct instance_standard__NativeArray*)var169)->values[1] = (val*) var_token;
1249 ((struct instance_standard__NativeArray*)var169)->values[2] = (val*) var163;
1250 {
1251 ((void (*)(val* self, val* p0, long p1))(var167->class->vft[COLOR_standard__array__Array__with_native]))(var167, var169, var168) /* with_native on <var167:Array[Object]>*/;
1252 }
1253 }
1254 {
1255 var170 = ((val* (*)(val* self))(var167->class->vft[COLOR_standard__string__Object__to_s]))(var167) /* to_s on <var167:Array[Object]>*/;
1256 }
1257 {
1258 { /* Inline parser_nodes#ANode#location (var_token) on <var_token:Token> */
1259 var173 = var_token->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_token:Token> */
1260 if (unlikely(var173 == NULL)) {
1261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1263 show_backtrace(1);
1264 }
1265 var171 = var173;
1266 RET_LABEL172:(void)0;
1267 }
1268 }
1269 {
1270 nit__lexer_work___AParserError___init_parser_error(var157, var170, var171, var_token); /* Direct call lexer_work#AParserError#init_parser_error on <var157:AParserError>*/
1271 }
1272 var_node2174 = var157;
1273 var175 = NEW_nit__Start(&type_nit__Start);
1274 var176 = NULL;
1275 {
1276 ((void (*)(val* self, val* p0))(var175->class->vft[COLOR_nit__parser_nodes__Start__n_base_61d]))(var175, var176) /* n_base= on <var175:Start>*/;
1277 }
1278 {
1279 ((void (*)(val* self, val* p0))(var175->class->vft[COLOR_nit__parser_nodes__Start__n_eof_61d]))(var175, var_node2174) /* n_eof= on <var175:Start>*/;
1280 }
1281 {
1282 ((void (*)(val* self))(var175->class->vft[COLOR_standard__kernel__Object__init]))(var175) /* init on <var175:Start>*/;
1283 }
1284 var_node177 = var175;
1285 var = var_node177;
1286 goto RET_LABEL;
1287 } else {
1288 }
1289 }
1290 }
1291 }
1292 }
1293 RET_LABEL:;
1294 return var;
1295 }
1296 /* method parser_work#Prod#collect_text for (self: Prod): String */
1297 val* nit__parser_work___Prod___collect_text(val* self) {
1298 val* var /* : String */;
1299 val* var1 /* : TextCollectorVisitor */;
1300 val* var_v /* var v: TextCollectorVisitor */;
1301 val* var3 /* : String */;
1302 val* var5 /* : String */;
1303 static val* varonce;
1304 val* var6 /* : String */;
1305 char* var7 /* : NativeString */;
1306 long var8 /* : Int */;
1307 val* var9 /* : FlatString */;
1308 short int var10 /* : Bool */;
1309 val* var_other /* var other: nullable Object */;
1310 short int var12 /* : Bool */;
1311 short int var13 /* : Bool */;
1312 val* var14 /* : String */;
1313 val* var16 /* : String */;
1314 var1 = NEW_nit__parser_work__TextCollectorVisitor(&type_nit__parser_work__TextCollectorVisitor);
1315 {
1316 { /* Inline kernel#Object#init (var1) on <var1:TextCollectorVisitor> */
1317 RET_LABEL2:(void)0;
1318 }
1319 }
1320 var_v = var1;
1321 {
1322 nit___nit__Visitor___enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TextCollectorVisitor>*/
1323 }
1324 {
1325 { /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
1326 var5 = var_v->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
1327 if (unlikely(var5 == NULL)) {
1328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 243);
1330 show_backtrace(1);
1331 }
1332 var3 = var5;
1333 RET_LABEL4:(void)0;
1334 }
1335 }
1336 if (varonce) {
1337 var6 = varonce;
1338 } else {
1339 var7 = "";
1340 var8 = 0;
1341 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
1342 var6 = var9;
1343 varonce = var6;
1344 }
1345 {
1346 { /* Inline kernel#Object#!= (var3,var6) on <var3:String> */
1347 var_other = var6;
1348 {
1349 var12 = ((short int (*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, var_other) /* == on <var3:String>*/;
1350 }
1351 var13 = !var12;
1352 var10 = var13;
1353 goto RET_LABEL11;
1354 RET_LABEL11:(void)0;
1355 }
1356 }
1357 if (unlikely(!var10)) {
1358 PRINT_ERROR("Runtime error: %s", "Assert failed");
1359 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 170);
1360 show_backtrace(1);
1361 }
1362 {
1363 { /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
1364 var16 = var_v->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
1365 if (unlikely(var16 == NULL)) {
1366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 243);
1368 show_backtrace(1);
1369 }
1370 var14 = var16;
1371 RET_LABEL15:(void)0;
1372 }
1373 }
1374 var = var14;
1375 goto RET_LABEL;
1376 RET_LABEL:;
1377 return var;
1378 }
1379 /* method parser_work#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
1380 void nit__parser_work___nit__parser_work__ComputeProdLocationVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
1381 val* var_n /* var n: ANode */;
1382 short int var /* : Bool */;
1383 int cltype;
1384 int idtype;
1385 short int var1 /* : Bool */;
1386 short int var2 /* : Bool */;
1387 val* var3 /* : Location */;
1388 val* var_loc /* var loc: Location */;
1389 val* var4 /* : Array[Prod] */;
1390 short int var5 /* : Bool */;
1391 short int var6 /* : Bool */;
1392 val* var7 /* : Array[Prod] */;
1393 val* var_ /* var : Array[Prod] */;
1394 val* var8 /* : ArrayIterator[nullable Object] */;
1395 val* var_9 /* var : ArrayIterator[Prod] */;
1396 short int var10 /* : Bool */;
1397 val* var11 /* : nullable Object */;
1398 val* var_no /* var no: Prod */;
1399 val* var13 /* : Array[Prod] */;
1400 val* var14 /* : Array[Prod] */;
1401 short int var15 /* : Bool */;
1402 short int var16 /* : Bool */;
1403 val* var17 /* : Location */;
1404 val* var18 /* : nullable SourceFile */;
1405 val* var20 /* : nullable SourceFile */;
1406 long var21 /* : Int */;
1407 long var23 /* : Int */;
1408 long var24 /* : Int */;
1409 long var26 /* : Int */;
1410 long var27 /* : Int */;
1411 long var29 /* : Int */;
1412 long var30 /* : Int */;
1413 long var32 /* : Int */;
1414 val* var_loco /* var loco: Location */;
1415 val* var33 /* : Array[Prod] */;
1416 val* var_34 /* var : Array[Prod] */;
1417 val* var35 /* : ArrayIterator[nullable Object] */;
1418 val* var_36 /* var : ArrayIterator[Prod] */;
1419 short int var37 /* : Bool */;
1420 val* var38 /* : nullable Object */;
1421 val* var_no39 /* var no: Prod */;
1422 val* var43 /* : Array[Prod] */;
1423 short int var44 /* : Bool */;
1424 int cltype45;
1425 int idtype46;
1426 val* var47 /* : Array[Prod] */;
1427 val* var48 /* : nullable Location */;
1428 val* var_startl /* var startl: nullable Location */;
1429 val* var49 /* : null */;
1430 short int var50 /* : Bool */;
1431 short int var51 /* : Bool */;
1432 val* var_other /* var other: nullable Object */;
1433 short int var53 /* : Bool */;
1434 short int var54 /* : Bool */;
1435 val* var55 /* : nullable Location */;
1436 val* var_endl /* var endl: nullable Location */;
1437 val* var56 /* : null */;
1438 short int var57 /* : Bool */;
1439 short int var58 /* : Bool */;
1440 short int var60 /* : Bool */;
1441 short int var61 /* : Bool */;
1442 val* var62 /* : Location */;
1443 val* var63 /* : nullable SourceFile */;
1444 val* var65 /* : nullable SourceFile */;
1445 long var66 /* : Int */;
1446 long var68 /* : Int */;
1447 long var69 /* : Int */;
1448 long var71 /* : Int */;
1449 long var72 /* : Int */;
1450 long var74 /* : Int */;
1451 long var75 /* : Int */;
1452 long var77 /* : Int */;
1453 val* var79 /* : Array[Prod] */;
1454 short int var80 /* : Bool */;
1455 short int var81 /* : Bool */;
1456 val* var82 /* : Location */;
1457 val* var83 /* : nullable SourceFile */;
1458 val* var85 /* : nullable SourceFile */;
1459 long var86 /* : Int */;
1460 long var88 /* : Int */;
1461 long var89 /* : Int */;
1462 long var91 /* : Int */;
1463 long var92 /* : Int */;
1464 long var94 /* : Int */;
1465 long var95 /* : Int */;
1466 long var97 /* : Int */;
1467 val* var_loc98 /* var loc: Location */;
1468 val* var99 /* : Array[Prod] */;
1469 val* var_100 /* var : Array[Prod] */;
1470 val* var101 /* : ArrayIterator[nullable Object] */;
1471 val* var_102 /* var : ArrayIterator[Prod] */;
1472 short int var103 /* : Bool */;
1473 val* var104 /* : nullable Object */;
1474 val* var_no105 /* var no: Prod */;
1475 val* var109 /* : Array[Prod] */;
1476 val* var110 /* : Array[Prod] */;
1477 var_n = p0;
1478 /* <var_n:ANode> isa Token */
1479 cltype = type_nit__Token.color;
1480 idtype = type_nit__Token.id;
1481 if(cltype >= var_n->type->table_size) {
1482 var = 0;
1483 } else {
1484 var = var_n->type->type_table[cltype] == idtype;
1485 }
1486 if (var){
1487 var1 = var_n->attrs[COLOR_nit__parser_nodes__ANode___location].val != NULL; /* _location on <var_n:ANode(Token)> */
1488 var2 = !var1;
1489 if (var2){
1490 goto RET_LABEL;
1491 } else {
1492 }
1493 var3 = var_n->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_n:ANode(Token)> */
1494 if (unlikely(var3 == NULL)) {
1495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 192);
1497 show_backtrace(1);
1498 }
1499 var_loc = var3;
1500 self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___last_location].val = var_loc; /* _last_location on <self:ComputeProdLocationVisitor> */
1501 var4 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1502 if (unlikely(var4 == NULL)) {
1503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 196);
1505 show_backtrace(1);
1506 }
1507 {
1508 var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var4);
1509 }
1510 var6 = !var5;
1511 if (var6){
1512 var7 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1513 if (unlikely(var7 == NULL)) {
1514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1515 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 197);
1516 show_backtrace(1);
1517 }
1518 var_ = var7;
1519 {
1520 var8 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
1521 }
1522 var_9 = var8;
1523 for(;;) {
1524 {
1525 var10 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_9);
1526 }
1527 if (var10){
1528 {
1529 var11 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_9);
1530 }
1531 var_no = var11;
1532 var_no->attrs[COLOR_nit__parser_work__Prod___first_location].val = var_loc; /* _first_location on <var_no:Prod> */
1533 {
1534 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_9); /* Direct call array#ArrayIterator#next on <var_9:ArrayIterator[Prod]>*/
1535 }
1536 } else {
1537 goto BREAK_label;
1538 }
1539 }
1540 BREAK_label: (void)0;
1541 {
1542 { /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:ArrayIterator[Prod]> */
1543 RET_LABEL12:(void)0;
1544 }
1545 }
1546 var13 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1547 if (unlikely(var13 == NULL)) {
1548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1549 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 200);
1550 show_backtrace(1);
1551 }
1552 {
1553 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var13); /* Direct call array#AbstractArray#clear on <var13:Array[Prod]>*/
1554 }
1555 } else {
1556 }
1557 var14 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1558 if (unlikely(var14 == NULL)) {
1559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 204);
1561 show_backtrace(1);
1562 }
1563 {
1564 var15 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var14);
1565 }
1566 var16 = !var15;
1567 if (var16){
1568 var17 = NEW_nit__Location(&type_nit__Location);
1569 {
1570 { /* Inline location#Location#file (var_loc) on <var_loc:Location> */
1571 var20 = var_loc->attrs[COLOR_nit__location__Location___file].val; /* _file on <var_loc:Location> */
1572 var18 = var20;
1573 RET_LABEL19:(void)0;
1574 }
1575 }
1576 {
1577 { /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
1578 var23 = var_loc->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
1579 var21 = var23;
1580 RET_LABEL22:(void)0;
1581 }
1582 }
1583 {
1584 { /* Inline location#Location#line_start (var_loc) on <var_loc:Location> */
1585 var26 = var_loc->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var_loc:Location> */
1586 var24 = var26;
1587 RET_LABEL25:(void)0;
1588 }
1589 }
1590 {
1591 { /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
1592 var29 = var_loc->attrs[COLOR_nit__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
1593 var27 = var29;
1594 RET_LABEL28:(void)0;
1595 }
1596 }
1597 {
1598 { /* Inline location#Location#column_start (var_loc) on <var_loc:Location> */
1599 var32 = var_loc->attrs[COLOR_nit__location__Location___column_start].l; /* _column_start on <var_loc:Location> */
1600 var30 = var32;
1601 RET_LABEL31:(void)0;
1602 }
1603 }
1604 {
1605 ((void (*)(val* self, val* p0))(var17->class->vft[COLOR_nit__location__Location__file_61d]))(var17, var18) /* file= on <var17:Location>*/;
1606 }
1607 {
1608 ((void (*)(val* self, long p0))(var17->class->vft[COLOR_nit__location__Location__line_start_61d]))(var17, var21) /* line_start= on <var17:Location>*/;
1609 }
1610 {
1611 ((void (*)(val* self, long p0))(var17->class->vft[COLOR_nit__location__Location__line_end_61d]))(var17, var24) /* line_end= on <var17:Location>*/;
1612 }
1613 {
1614 ((void (*)(val* self, long p0))(var17->class->vft[COLOR_nit__location__Location__column_start_61d]))(var17, var27) /* column_start= on <var17:Location>*/;
1615 }
1616 {
1617 ((void (*)(val* self, long p0))(var17->class->vft[COLOR_nit__location__Location__column_end_61d]))(var17, var30) /* column_end= on <var17:Location>*/;
1618 }
1619 {
1620 ((void (*)(val* self))(var17->class->vft[COLOR_standard__kernel__Object__init]))(var17) /* init on <var17:Location>*/;
1621 }
1622 var_loco = var17;
1623 var33 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1624 if (unlikely(var33 == NULL)) {
1625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1626 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 206);
1627 show_backtrace(1);
1628 }
1629 var_34 = var33;
1630 {
1631 var35 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_34);
1632 }
1633 var_36 = var35;
1634 for(;;) {
1635 {
1636 var37 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_36);
1637 }
1638 if (var37){
1639 {
1640 var38 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_36);
1641 }
1642 var_no39 = var38;
1643 {
1644 { /* Inline parser_nodes#ANode#location= (var_no39,var_loco) on <var_no39:Prod> */
1645 var_no39->attrs[COLOR_nit__parser_nodes__ANode___location].val = var_loco; /* _location on <var_no39:Prod> */
1646 RET_LABEL40:(void)0;
1647 }
1648 }
1649 {
1650 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_36); /* Direct call array#ArrayIterator#next on <var_36:ArrayIterator[Prod]>*/
1651 }
1652 } else {
1653 goto BREAK_label41;
1654 }
1655 }
1656 BREAK_label41: (void)0;
1657 {
1658 { /* Inline abstract_collection#Iterator#finish (var_36) on <var_36:ArrayIterator[Prod]> */
1659 RET_LABEL42:(void)0;
1660 }
1661 }
1662 var43 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1663 if (unlikely(var43 == NULL)) {
1664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 209);
1666 show_backtrace(1);
1667 }
1668 {
1669 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var43); /* Direct call array#AbstractArray#clear on <var43:Array[Prod]>*/
1670 }
1671 } else {
1672 }
1673 } else {
1674 /* <var_n:ANode> isa Prod */
1675 cltype45 = type_nit__Prod.color;
1676 idtype46 = type_nit__Prod.id;
1677 if(cltype45 >= var_n->type->table_size) {
1678 var44 = 0;
1679 } else {
1680 var44 = var_n->type->type_table[cltype45] == idtype46;
1681 }
1682 if (unlikely(!var44)) {
1683 PRINT_ERROR("Runtime error: %s", "Assert failed");
1684 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 212);
1685 show_backtrace(1);
1686 }
1687 var47 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
1688 if (unlikely(var47 == NULL)) {
1689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_first_prods");
1690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 213);
1691 show_backtrace(1);
1692 }
1693 {
1694 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var47, var_n); /* Direct call array#Array#add on <var47:Array[Prod]>*/
1695 }
1696 {
1697 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode(Prod)>*/;
1698 }
1699 var48 = var_n->attrs[COLOR_nit__parser_work__Prod___first_location].val; /* _first_location on <var_n:ANode(Prod)> */
1700 var_startl = var48;
1701 var49 = NULL;
1702 if (var_startl == NULL) {
1703 var50 = 0; /* is null */
1704 } else {
1705 var50 = 1; /* arg is null and recv is not */
1706 }
1707 if (0) {
1708 { /* Inline kernel#Object#!= (var_startl,var49) on <var_startl:nullable Location> */
1709 var_other = var49;
1710 {
1711 var53 = ((short int (*)(val* self, val* p0))(var_startl->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_startl, var_other) /* == on <var_startl:nullable Location(Location)>*/;
1712 }
1713 var54 = !var53;
1714 var51 = var54;
1715 goto RET_LABEL52;
1716 RET_LABEL52:(void)0;
1717 }
1718 var50 = var51;
1719 }
1720 if (var50){
1721 var55 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___last_location].val; /* _last_location on <self:ComputeProdLocationVisitor> */
1722 var_endl = var55;
1723 var56 = NULL;
1724 if (var_endl == NULL) {
1725 var57 = 0; /* is null */
1726 } else {
1727 var57 = 1; /* arg is null and recv is not */
1728 }
1729 if (0) {
1730 { /* Inline kernel#Object#!= (var_endl,var56) on <var_endl:nullable Location> */
1731 var_other = var56;
1732 {
1733 var60 = ((short int (*)(val* self, val* p0))(var_endl->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_endl, var_other) /* == on <var_endl:nullable Location(Location)>*/;
1734 }
1735 var61 = !var60;
1736 var58 = var61;
1737 goto RET_LABEL59;
1738 RET_LABEL59:(void)0;
1739 }
1740 var57 = var58;
1741 }
1742 if (unlikely(!var57)) {
1743 PRINT_ERROR("Runtime error: %s", "Assert failed");
1744 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 221);
1745 show_backtrace(1);
1746 }
1747 var62 = NEW_nit__Location(&type_nit__Location);
1748 {
1749 { /* Inline location#Location#file (var_startl) on <var_startl:nullable Location(Location)> */
1750 var65 = var_startl->attrs[COLOR_nit__location__Location___file].val; /* _file on <var_startl:nullable Location(Location)> */
1751 var63 = var65;
1752 RET_LABEL64:(void)0;
1753 }
1754 }
1755 {
1756 { /* Inline location#Location#line_start (var_startl) on <var_startl:nullable Location(Location)> */
1757 var68 = var_startl->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var_startl:nullable Location(Location)> */
1758 var66 = var68;
1759 RET_LABEL67:(void)0;
1760 }
1761 }
1762 {
1763 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1764 var71 = var_endl->attrs[COLOR_nit__location__Location___line_end].l; /* _line_end on <var_endl:nullable Location(Location)> */
1765 var69 = var71;
1766 RET_LABEL70:(void)0;
1767 }
1768 }
1769 {
1770 { /* Inline location#Location#column_start (var_startl) on <var_startl:nullable Location(Location)> */
1771 var74 = var_startl->attrs[COLOR_nit__location__Location___column_start].l; /* _column_start on <var_startl:nullable Location(Location)> */
1772 var72 = var74;
1773 RET_LABEL73:(void)0;
1774 }
1775 }
1776 {
1777 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1778 var77 = var_endl->attrs[COLOR_nit__location__Location___column_end].l; /* _column_end on <var_endl:nullable Location(Location)> */
1779 var75 = var77;
1780 RET_LABEL76:(void)0;
1781 }
1782 }
1783 {
1784 ((void (*)(val* self, val* p0))(var62->class->vft[COLOR_nit__location__Location__file_61d]))(var62, var63) /* file= on <var62:Location>*/;
1785 }
1786 {
1787 ((void (*)(val* self, long p0))(var62->class->vft[COLOR_nit__location__Location__line_start_61d]))(var62, var66) /* line_start= on <var62:Location>*/;
1788 }
1789 {
1790 ((void (*)(val* self, long p0))(var62->class->vft[COLOR_nit__location__Location__line_end_61d]))(var62, var69) /* line_end= on <var62:Location>*/;
1791 }
1792 {
1793 ((void (*)(val* self, long p0))(var62->class->vft[COLOR_nit__location__Location__column_start_61d]))(var62, var72) /* column_start= on <var62:Location>*/;
1794 }
1795 {
1796 ((void (*)(val* self, long p0))(var62->class->vft[COLOR_nit__location__Location__column_end_61d]))(var62, var75) /* column_end= on <var62:Location>*/;
1797 }
1798 {
1799 ((void (*)(val* self))(var62->class->vft[COLOR_standard__kernel__Object__init]))(var62) /* init on <var62:Location>*/;
1800 }
1801 {
1802 { /* Inline parser_nodes#ANode#location= (var_n,var62) on <var_n:ANode(Prod)> */
1803 var_n->attrs[COLOR_nit__parser_nodes__ANode___location].val = var62; /* _location on <var_n:ANode(Prod)> */
1804 RET_LABEL78:(void)0;
1805 }
1806 }
1807 var79 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1808 if (unlikely(var79 == NULL)) {
1809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 225);
1811 show_backtrace(1);
1812 }
1813 {
1814 var80 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var79);
1815 }
1816 var81 = !var80;
1817 if (var81){
1818 var82 = NEW_nit__Location(&type_nit__Location);
1819 {
1820 { /* Inline location#Location#file (var_endl) on <var_endl:nullable Location(Location)> */
1821 var85 = var_endl->attrs[COLOR_nit__location__Location___file].val; /* _file on <var_endl:nullable Location(Location)> */
1822 var83 = var85;
1823 RET_LABEL84:(void)0;
1824 }
1825 }
1826 {
1827 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1828 var88 = var_endl->attrs[COLOR_nit__location__Location___line_end].l; /* _line_end on <var_endl:nullable Location(Location)> */
1829 var86 = var88;
1830 RET_LABEL87:(void)0;
1831 }
1832 }
1833 {
1834 { /* Inline location#Location#line_end (var_endl) on <var_endl:nullable Location(Location)> */
1835 var91 = var_endl->attrs[COLOR_nit__location__Location___line_end].l; /* _line_end on <var_endl:nullable Location(Location)> */
1836 var89 = var91;
1837 RET_LABEL90:(void)0;
1838 }
1839 }
1840 {
1841 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1842 var94 = var_endl->attrs[COLOR_nit__location__Location___column_end].l; /* _column_end on <var_endl:nullable Location(Location)> */
1843 var92 = var94;
1844 RET_LABEL93:(void)0;
1845 }
1846 }
1847 {
1848 { /* Inline location#Location#column_end (var_endl) on <var_endl:nullable Location(Location)> */
1849 var97 = var_endl->attrs[COLOR_nit__location__Location___column_end].l; /* _column_end on <var_endl:nullable Location(Location)> */
1850 var95 = var97;
1851 RET_LABEL96:(void)0;
1852 }
1853 }
1854 {
1855 ((void (*)(val* self, val* p0))(var82->class->vft[COLOR_nit__location__Location__file_61d]))(var82, var83) /* file= on <var82:Location>*/;
1856 }
1857 {
1858 ((void (*)(val* self, long p0))(var82->class->vft[COLOR_nit__location__Location__line_start_61d]))(var82, var86) /* line_start= on <var82:Location>*/;
1859 }
1860 {
1861 ((void (*)(val* self, long p0))(var82->class->vft[COLOR_nit__location__Location__line_end_61d]))(var82, var89) /* line_end= on <var82:Location>*/;
1862 }
1863 {
1864 ((void (*)(val* self, long p0))(var82->class->vft[COLOR_nit__location__Location__column_start_61d]))(var82, var92) /* column_start= on <var82:Location>*/;
1865 }
1866 {
1867 ((void (*)(val* self, long p0))(var82->class->vft[COLOR_nit__location__Location__column_end_61d]))(var82, var95) /* column_end= on <var82:Location>*/;
1868 }
1869 {
1870 ((void (*)(val* self))(var82->class->vft[COLOR_standard__kernel__Object__init]))(var82) /* init on <var82:Location>*/;
1871 }
1872 var_loc98 = var82;
1873 var99 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1874 if (unlikely(var99 == NULL)) {
1875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1876 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 227);
1877 show_backtrace(1);
1878 }
1879 var_100 = var99;
1880 {
1881 var101 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_100);
1882 }
1883 var_102 = var101;
1884 for(;;) {
1885 {
1886 var103 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_102);
1887 }
1888 if (var103){
1889 {
1890 var104 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_102);
1891 }
1892 var_no105 = var104;
1893 {
1894 { /* Inline parser_nodes#ANode#location= (var_no105,var_loc98) on <var_no105:Prod> */
1895 var_no105->attrs[COLOR_nit__parser_nodes__ANode___location].val = var_loc98; /* _location on <var_no105:Prod> */
1896 RET_LABEL106:(void)0;
1897 }
1898 }
1899 {
1900 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_102); /* Direct call array#ArrayIterator#next on <var_102:ArrayIterator[Prod]>*/
1901 }
1902 } else {
1903 goto BREAK_label107;
1904 }
1905 }
1906 BREAK_label107: (void)0;
1907 {
1908 { /* Inline abstract_collection#Iterator#finish (var_102) on <var_102:ArrayIterator[Prod]> */
1909 RET_LABEL108:(void)0;
1910 }
1911 }
1912 var109 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1913 if (unlikely(var109 == NULL)) {
1914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1915 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 231);
1916 show_backtrace(1);
1917 }
1918 {
1919 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var109); /* Direct call array#AbstractArray#clear on <var109:Array[Prod]>*/
1920 }
1921 } else {
1922 }
1923 } else {
1924 var110 = self->attrs[COLOR_nit__parser_work__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
1925 if (unlikely(var110 == NULL)) {
1926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
1927 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 235);
1928 show_backtrace(1);
1929 }
1930 {
1931 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var110, var_n); /* Direct call array#Array#add on <var110:Array[Prod]>*/
1932 }
1933 }
1934 }
1935 RET_LABEL:;
1936 }
1937 /* method parser_work#TextCollectorVisitor#text for (self: TextCollectorVisitor): String */
1938 val* nit__parser_work___nit__parser_work__TextCollectorVisitor___text(val* self) {
1939 val* var /* : String */;
1940 val* var1 /* : String */;
1941 var1 = self->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val; /* _text on <self:TextCollectorVisitor> */
1942 if (unlikely(var1 == NULL)) {
1943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 243);
1945 show_backtrace(1);
1946 }
1947 var = var1;
1948 RET_LABEL:;
1949 return var;
1950 }
1951 /* method parser_work#TextCollectorVisitor#text= for (self: TextCollectorVisitor, String) */
1952 void nit__parser_work___nit__parser_work__TextCollectorVisitor___text_61d(val* self, val* p0) {
1953 self->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val = p0; /* _text on <self:TextCollectorVisitor> */
1954 RET_LABEL:;
1955 }
1956 /* method parser_work#TextCollectorVisitor#visit for (self: TextCollectorVisitor, ANode) */
1957 void nit__parser_work___nit__parser_work__TextCollectorVisitor___nit__parser_nodes__Visitor__visit(val* self, val* p0) {
1958 val* var_n /* var n: ANode */;
1959 short int var /* : Bool */;
1960 int cltype;
1961 int idtype;
1962 val* var_ /* var : TextCollectorVisitor */;
1963 val* var1 /* : String */;
1964 val* var3 /* : String */;
1965 val* var4 /* : String */;
1966 val* var5 /* : String */;
1967 var_n = p0;
1968 /* <var_n:ANode> isa Token */
1969 cltype = type_nit__Token.color;
1970 idtype = type_nit__Token.id;
1971 if(cltype >= var_n->type->table_size) {
1972 var = 0;
1973 } else {
1974 var = var_n->type->type_table[cltype] == idtype;
1975 }
1976 if (var){
1977 var_ = self;
1978 {
1979 { /* Inline parser_work#TextCollectorVisitor#text (var_) on <var_:TextCollectorVisitor> */
1980 var3 = var_->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val; /* _text on <var_:TextCollectorVisitor> */
1981 if (unlikely(var3 == NULL)) {
1982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
1983 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_work, 243);
1984 show_backtrace(1);
1985 }
1986 var1 = var3;
1987 RET_LABEL2:(void)0;
1988 }
1989 }
1990 {
1991 var4 = nit__lexer_work___Token___text(var_n);
1992 }
1993 {
1994 var5 = ((val* (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__string__String___43d]))(var1, var4) /* + on <var1:String>*/;
1995 }
1996 {
1997 { /* Inline parser_work#TextCollectorVisitor#text= (var_,var5) on <var_:TextCollectorVisitor> */
1998 var_->attrs[COLOR_nit__parser_work__TextCollectorVisitor___text].val = var5; /* _text on <var_:TextCollectorVisitor> */
1999 RET_LABEL6:(void)0;
2000 }
2001 }
2002 } else {
2003 }
2004 {
2005 ((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
2006 }
2007 RET_LABEL:;
2008 }
2009 /* method parser_work#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
2010 val* nit__parser_work___nit__parser_work__ReduceAction___concat(val* self, val* p0, val* p1) {
2011 val* var /* : Array[Object] */;
2012 val* var_l1 /* var l1: Array[Object] */;
2013 val* var_l2 /* var l2: Array[Object] */;
2014 short int var1 /* : Bool */;
2015 var_l1 = p0;
2016 var_l2 = p1;
2017 {
2018 var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_l1);
2019 }
2020 if (var1){
2021 var = var_l2;
2022 goto RET_LABEL;
2023 } else {
2024 }
2025 {
2026 standard___standard__Sequence___append(var_l1, var_l2); /* Direct call abstract_collection#Sequence#append on <var_l1:Array[Object]>*/
2027 }
2028 var = var_l1;
2029 goto RET_LABEL;
2030 RET_LABEL:;
2031 return var;
2032 }
2033 /* method parser_work#ReduceAction#goto= for (self: ReduceAction, Int) */
2034 void nit__parser_work___nit__parser_work__ReduceAction___goto_61d(val* self, long p0) {
2035 self->attrs[COLOR_nit__parser_work__ReduceAction___goto].l = p0; /* _goto on <self:ReduceAction> */
2036 RET_LABEL:;
2037 }
2038 /* method parser_work#ReduceAction#init for (self: ReduceAction) */
2039 void nit__parser_work___nit__parser_work__ReduceAction___standard__kernel__Object__init(val* self) {
2040 {
2041 ((void (*)(val* self))(self->class->vft[COLOR_nit__parser_work___nit__parser_work__ReduceAction___standard__kernel__Object__init]))(self) /* init on <self:ReduceAction>*/;
2042 }
2043 RET_LABEL:;
2044 }