nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / parser.sep.5.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction250#action for (self: ReduceAction250, Parser) */
3 void parser__ReduceAction250__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
11 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
12 short int var3 /* : Bool */;
13 int cltype;
14 int idtype;
15 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
16 short int var4 /* : Bool */;
17 int cltype5;
18 int idtype6;
19 val* var7 /* : ADoExpr */;
20 val* var8 /* : null */;
21 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
22 long var9 /* : Int */;
23 long var10 /* : Int */;
24 var_p = p0;
25 var = NULL;
26 var_node_list = var;
27 {
28 var1 = parser_work__Parser__pop(var_p);
29 }
30 var_nodearraylist2 = var1;
31 {
32 var2 = parser_work__Parser__pop(var_p);
33 }
34 var_nodearraylist1 = var2;
35 var_tkwdonode2 = var_nodearraylist1;
36 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
37 cltype = type_nullable_parser_nodes__TKwdo.color;
38 idtype = type_nullable_parser_nodes__TKwdo.id;
39 if(var_tkwdonode2 == NULL) {
40 var3 = 1;
41 } else {
42 if(cltype >= var_tkwdonode2->type->table_size) {
43 var3 = 0;
44 } else {
45 var3 = var_tkwdonode2->type->type_table[cltype] == idtype;
46 }
47 }
48 if (unlikely(!var3)) {
49 PRINT_ERROR("Runtime error: %s", "Assert failed");
50 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7159);
51 show_backtrace(1);
52 }
53 var_pexprnode3 = var_nodearraylist2;
54 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
55 cltype5 = type_nullable_parser_nodes__AExpr.color;
56 idtype6 = type_nullable_parser_nodes__AExpr.id;
57 if(var_pexprnode3 == NULL) {
58 var4 = 1;
59 } else {
60 if(cltype5 >= var_pexprnode3->type->table_size) {
61 var4 = 0;
62 } else {
63 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
64 }
65 }
66 if (unlikely(!var4)) {
67 PRINT_ERROR("Runtime error: %s", "Assert failed");
68 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7161);
69 show_backtrace(1);
70 }
71 var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
72 var8 = NULL;
73 {
74 parser_prod__ADoExpr__init_adoexpr(var7, var_tkwdonode2, var_pexprnode3, var8); /* Direct call parser_prod#ADoExpr#init_adoexpr on <var7:ADoExpr>*/
75 }
76 var_pexprnode1 = var7;
77 var_node_list = var_pexprnode1;
78 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction250> */
79 {
80 var10 = parser_work__Parser__go_to(var_p, var9);
81 }
82 {
83 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
84 }
85 RET_LABEL:;
86 }
87 /* method parser#ReduceAction250#action for (self: Object, Parser) */
88 void VIRTUAL_parser__ReduceAction250__action(val* self, val* p0) {
89 parser__ReduceAction250__action(self, p0); /* Direct call parser#ReduceAction250#action on <self:Object(ReduceAction250)>*/
90 RET_LABEL:;
91 }
92 /* method parser#ReduceAction251#action for (self: ReduceAction251, Parser) */
93 void parser__ReduceAction251__action(val* self, val* p0) {
94 val* var_p /* var p: Parser */;
95 val* var /* : null */;
96 val* var_node_list /* var node_list: nullable Object */;
97 val* var1 /* : nullable Object */;
98 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
99 val* var2 /* : nullable Object */;
100 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
101 val* var3 /* : nullable Object */;
102 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
103 val* var4 /* : nullable Object */;
104 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
105 val* var5 /* : nullable Object */;
106 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
107 val* var6 /* : nullable Object */;
108 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
109 val* var7 /* : nullable Object */;
110 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
111 val* var8 /* : nullable Object */;
112 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
113 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
114 short int var9 /* : Bool */;
115 int cltype;
116 int idtype;
117 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
118 short int var10 /* : Bool */;
119 int cltype11;
120 int idtype12;
121 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
122 short int var13 /* : Bool */;
123 int cltype14;
124 int idtype15;
125 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
126 short int var16 /* : Bool */;
127 int cltype17;
128 int idtype18;
129 val* var19 /* : AIfExpr */;
130 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
131 long var20 /* : Int */;
132 long var21 /* : Int */;
133 var_p = p0;
134 var = NULL;
135 var_node_list = var;
136 {
137 var1 = parser_work__Parser__pop(var_p);
138 }
139 var_nodearraylist8 = var1;
140 {
141 var2 = parser_work__Parser__pop(var_p);
142 }
143 var_nodearraylist7 = var2;
144 {
145 var3 = parser_work__Parser__pop(var_p);
146 }
147 var_nodearraylist6 = var3;
148 {
149 var4 = parser_work__Parser__pop(var_p);
150 }
151 var_nodearraylist5 = var4;
152 {
153 var5 = parser_work__Parser__pop(var_p);
154 }
155 var_nodearraylist4 = var5;
156 {
157 var6 = parser_work__Parser__pop(var_p);
158 }
159 var_nodearraylist3 = var6;
160 {
161 var7 = parser_work__Parser__pop(var_p);
162 }
163 var_nodearraylist2 = var7;
164 {
165 var8 = parser_work__Parser__pop(var_p);
166 }
167 var_nodearraylist1 = var8;
168 var_tkwifnode2 = var_nodearraylist1;
169 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
170 cltype = type_nullable_parser_nodes__TKwif.color;
171 idtype = type_nullable_parser_nodes__TKwif.id;
172 if(var_tkwifnode2 == NULL) {
173 var9 = 1;
174 } else {
175 if(cltype >= var_tkwifnode2->type->table_size) {
176 var9 = 0;
177 } else {
178 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
179 }
180 }
181 if (unlikely(!var9)) {
182 PRINT_ERROR("Runtime error: %s", "Assert failed");
183 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7185);
184 show_backtrace(1);
185 }
186 var_pexprnode3 = var_nodearraylist3;
187 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
188 cltype11 = type_nullable_parser_nodes__AExpr.color;
189 idtype12 = type_nullable_parser_nodes__AExpr.id;
190 if(var_pexprnode3 == NULL) {
191 var10 = 1;
192 } else {
193 if(cltype11 >= var_pexprnode3->type->table_size) {
194 var10 = 0;
195 } else {
196 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
197 }
198 }
199 if (unlikely(!var10)) {
200 PRINT_ERROR("Runtime error: %s", "Assert failed");
201 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7187);
202 show_backtrace(1);
203 }
204 var_pexprnode4 = var_nodearraylist6;
205 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
206 cltype14 = type_nullable_parser_nodes__AExpr.color;
207 idtype15 = type_nullable_parser_nodes__AExpr.id;
208 if(var_pexprnode4 == NULL) {
209 var13 = 1;
210 } else {
211 if(cltype14 >= var_pexprnode4->type->table_size) {
212 var13 = 0;
213 } else {
214 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
215 }
216 }
217 if (unlikely(!var13)) {
218 PRINT_ERROR("Runtime error: %s", "Assert failed");
219 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7189);
220 show_backtrace(1);
221 }
222 var_pexprnode5 = var_nodearraylist8;
223 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
224 cltype17 = type_nullable_parser_nodes__AExpr.color;
225 idtype18 = type_nullable_parser_nodes__AExpr.id;
226 if(var_pexprnode5 == NULL) {
227 var16 = 1;
228 } else {
229 if(cltype17 >= var_pexprnode5->type->table_size) {
230 var16 = 0;
231 } else {
232 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
233 }
234 }
235 if (unlikely(!var16)) {
236 PRINT_ERROR("Runtime error: %s", "Assert failed");
237 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7191);
238 show_backtrace(1);
239 }
240 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
241 {
242 parser_prod__AIfExpr__init_aifexpr(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var19:AIfExpr>*/
243 }
244 var_pexprnode1 = var19;
245 var_node_list = var_pexprnode1;
246 var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction251> */
247 {
248 var21 = parser_work__Parser__go_to(var_p, var20);
249 }
250 {
251 parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
252 }
253 RET_LABEL:;
254 }
255 /* method parser#ReduceAction251#action for (self: Object, Parser) */
256 void VIRTUAL_parser__ReduceAction251__action(val* self, val* p0) {
257 parser__ReduceAction251__action(self, p0); /* Direct call parser#ReduceAction251#action on <self:Object(ReduceAction251)>*/
258 RET_LABEL:;
259 }
260 /* method parser#ReduceAction252#action for (self: ReduceAction252, Parser) */
261 void parser__ReduceAction252__action(val* self, val* p0) {
262 val* var_p /* var p: Parser */;
263 val* var /* : null */;
264 val* var_node_list /* var node_list: nullable Object */;
265 val* var1 /* : nullable Object */;
266 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
267 val* var2 /* : nullable Object */;
268 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
269 val* var3 /* : nullable Object */;
270 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
271 val* var4 /* : nullable Object */;
272 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
273 val* var5 /* : nullable Object */;
274 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
275 val* var6 /* : nullable Object */;
276 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
277 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
278 short int var7 /* : Bool */;
279 int cltype;
280 int idtype;
281 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
282 short int var8 /* : Bool */;
283 int cltype9;
284 int idtype10;
285 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
286 short int var11 /* : Bool */;
287 int cltype12;
288 int idtype13;
289 val* var14 /* : AIfExpr */;
290 val* var15 /* : null */;
291 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
292 long var16 /* : Int */;
293 long var17 /* : Int */;
294 var_p = p0;
295 var = NULL;
296 var_node_list = var;
297 {
298 var1 = parser_work__Parser__pop(var_p);
299 }
300 var_nodearraylist6 = var1;
301 {
302 var2 = parser_work__Parser__pop(var_p);
303 }
304 var_nodearraylist5 = var2;
305 {
306 var3 = parser_work__Parser__pop(var_p);
307 }
308 var_nodearraylist4 = var3;
309 {
310 var4 = parser_work__Parser__pop(var_p);
311 }
312 var_nodearraylist3 = var4;
313 {
314 var5 = parser_work__Parser__pop(var_p);
315 }
316 var_nodearraylist2 = var5;
317 {
318 var6 = parser_work__Parser__pop(var_p);
319 }
320 var_nodearraylist1 = var6;
321 var_tkwifnode2 = var_nodearraylist1;
322 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
323 cltype = type_nullable_parser_nodes__TKwif.color;
324 idtype = type_nullable_parser_nodes__TKwif.id;
325 if(var_tkwifnode2 == NULL) {
326 var7 = 1;
327 } else {
328 if(cltype >= var_tkwifnode2->type->table_size) {
329 var7 = 0;
330 } else {
331 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
332 }
333 }
334 if (unlikely(!var7)) {
335 PRINT_ERROR("Runtime error: %s", "Assert failed");
336 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7214);
337 show_backtrace(1);
338 }
339 var_pexprnode3 = var_nodearraylist3;
340 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
341 cltype9 = type_nullable_parser_nodes__AExpr.color;
342 idtype10 = type_nullable_parser_nodes__AExpr.id;
343 if(var_pexprnode3 == NULL) {
344 var8 = 1;
345 } else {
346 if(cltype9 >= var_pexprnode3->type->table_size) {
347 var8 = 0;
348 } else {
349 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
350 }
351 }
352 if (unlikely(!var8)) {
353 PRINT_ERROR("Runtime error: %s", "Assert failed");
354 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7216);
355 show_backtrace(1);
356 }
357 var_pexprnode4 = var_nodearraylist6;
358 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
359 cltype12 = type_nullable_parser_nodes__AExpr.color;
360 idtype13 = type_nullable_parser_nodes__AExpr.id;
361 if(var_pexprnode4 == NULL) {
362 var11 = 1;
363 } else {
364 if(cltype12 >= var_pexprnode4->type->table_size) {
365 var11 = 0;
366 } else {
367 var11 = var_pexprnode4->type->type_table[cltype12] == idtype13;
368 }
369 }
370 if (unlikely(!var11)) {
371 PRINT_ERROR("Runtime error: %s", "Assert failed");
372 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7218);
373 show_backtrace(1);
374 }
375 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
376 var15 = NULL;
377 {
378 parser_prod__AIfExpr__init_aifexpr(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var14:AIfExpr>*/
379 }
380 var_pexprnode1 = var14;
381 var_node_list = var_pexprnode1;
382 var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction252> */
383 {
384 var17 = parser_work__Parser__go_to(var_p, var16);
385 }
386 {
387 parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
388 }
389 RET_LABEL:;
390 }
391 /* method parser#ReduceAction252#action for (self: Object, Parser) */
392 void VIRTUAL_parser__ReduceAction252__action(val* self, val* p0) {
393 parser__ReduceAction252__action(self, p0); /* Direct call parser#ReduceAction252#action on <self:Object(ReduceAction252)>*/
394 RET_LABEL:;
395 }
396 /* method parser#ReduceAction253#action for (self: ReduceAction253, Parser) */
397 void parser__ReduceAction253__action(val* self, val* p0) {
398 val* var_p /* var p: Parser */;
399 val* var /* : null */;
400 val* var_node_list /* var node_list: nullable Object */;
401 val* var1 /* : nullable Object */;
402 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
403 val* var2 /* : nullable Object */;
404 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
405 val* var3 /* : nullable Object */;
406 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
407 val* var4 /* : nullable Object */;
408 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
409 val* var5 /* : nullable Object */;
410 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
411 val* var6 /* : nullable Object */;
412 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
413 val* var7 /* : nullable Object */;
414 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
415 val* var8 /* : nullable Object */;
416 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
417 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
418 short int var9 /* : Bool */;
419 int cltype;
420 int idtype;
421 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
422 short int var10 /* : Bool */;
423 int cltype11;
424 int idtype12;
425 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
426 short int var13 /* : Bool */;
427 int cltype14;
428 int idtype15;
429 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
430 short int var16 /* : Bool */;
431 int cltype17;
432 int idtype18;
433 val* var19 /* : AIfExpr */;
434 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
435 long var20 /* : Int */;
436 long var21 /* : Int */;
437 var_p = p0;
438 var = NULL;
439 var_node_list = var;
440 {
441 var1 = parser_work__Parser__pop(var_p);
442 }
443 var_nodearraylist8 = var1;
444 {
445 var2 = parser_work__Parser__pop(var_p);
446 }
447 var_nodearraylist7 = var2;
448 {
449 var3 = parser_work__Parser__pop(var_p);
450 }
451 var_nodearraylist6 = var3;
452 {
453 var4 = parser_work__Parser__pop(var_p);
454 }
455 var_nodearraylist5 = var4;
456 {
457 var5 = parser_work__Parser__pop(var_p);
458 }
459 var_nodearraylist4 = var5;
460 {
461 var6 = parser_work__Parser__pop(var_p);
462 }
463 var_nodearraylist3 = var6;
464 {
465 var7 = parser_work__Parser__pop(var_p);
466 }
467 var_nodearraylist2 = var7;
468 {
469 var8 = parser_work__Parser__pop(var_p);
470 }
471 var_nodearraylist1 = var8;
472 var_tkwifnode2 = var_nodearraylist1;
473 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
474 cltype = type_nullable_parser_nodes__TKwif.color;
475 idtype = type_nullable_parser_nodes__TKwif.id;
476 if(var_tkwifnode2 == NULL) {
477 var9 = 1;
478 } else {
479 if(cltype >= var_tkwifnode2->type->table_size) {
480 var9 = 0;
481 } else {
482 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
483 }
484 }
485 if (unlikely(!var9)) {
486 PRINT_ERROR("Runtime error: %s", "Assert failed");
487 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7243);
488 show_backtrace(1);
489 }
490 var_pexprnode3 = var_nodearraylist3;
491 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
492 cltype11 = type_nullable_parser_nodes__AExpr.color;
493 idtype12 = type_nullable_parser_nodes__AExpr.id;
494 if(var_pexprnode3 == NULL) {
495 var10 = 1;
496 } else {
497 if(cltype11 >= var_pexprnode3->type->table_size) {
498 var10 = 0;
499 } else {
500 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
501 }
502 }
503 if (unlikely(!var10)) {
504 PRINT_ERROR("Runtime error: %s", "Assert failed");
505 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7245);
506 show_backtrace(1);
507 }
508 var_pexprnode4 = var_nodearraylist7;
509 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
510 cltype14 = type_nullable_parser_nodes__AExpr.color;
511 idtype15 = type_nullable_parser_nodes__AExpr.id;
512 if(var_pexprnode4 == NULL) {
513 var13 = 1;
514 } else {
515 if(cltype14 >= var_pexprnode4->type->table_size) {
516 var13 = 0;
517 } else {
518 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
519 }
520 }
521 if (unlikely(!var13)) {
522 PRINT_ERROR("Runtime error: %s", "Assert failed");
523 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7247);
524 show_backtrace(1);
525 }
526 var_pexprnode5 = var_nodearraylist8;
527 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
528 cltype17 = type_nullable_parser_nodes__AExpr.color;
529 idtype18 = type_nullable_parser_nodes__AExpr.id;
530 if(var_pexprnode5 == NULL) {
531 var16 = 1;
532 } else {
533 if(cltype17 >= var_pexprnode5->type->table_size) {
534 var16 = 0;
535 } else {
536 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
537 }
538 }
539 if (unlikely(!var16)) {
540 PRINT_ERROR("Runtime error: %s", "Assert failed");
541 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7249);
542 show_backtrace(1);
543 }
544 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
545 {
546 parser_prod__AIfExpr__init_aifexpr(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var19:AIfExpr>*/
547 }
548 var_pexprnode1 = var19;
549 var_node_list = var_pexprnode1;
550 var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction253> */
551 {
552 var21 = parser_work__Parser__go_to(var_p, var20);
553 }
554 {
555 parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
556 }
557 RET_LABEL:;
558 }
559 /* method parser#ReduceAction253#action for (self: Object, Parser) */
560 void VIRTUAL_parser__ReduceAction253__action(val* self, val* p0) {
561 parser__ReduceAction253__action(self, p0); /* Direct call parser#ReduceAction253#action on <self:Object(ReduceAction253)>*/
562 RET_LABEL:;
563 }
564 /* method parser#ReduceAction254#action for (self: ReduceAction254, Parser) */
565 void parser__ReduceAction254__action(val* self, val* p0) {
566 val* var_p /* var p: Parser */;
567 val* var /* : null */;
568 val* var_node_list /* var node_list: nullable Object */;
569 val* var1 /* : nullable Object */;
570 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
571 val* var2 /* : nullable Object */;
572 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
573 val* var3 /* : nullable Object */;
574 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
575 val* var4 /* : nullable Object */;
576 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
577 val* var5 /* : nullable Object */;
578 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
579 val* var6 /* : nullable Object */;
580 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
581 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
582 short int var7 /* : Bool */;
583 int cltype;
584 int idtype;
585 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
586 short int var8 /* : Bool */;
587 int cltype9;
588 int idtype10;
589 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
590 short int var11 /* : Bool */;
591 int cltype12;
592 int idtype13;
593 val* var14 /* : AIfExpr */;
594 val* var15 /* : null */;
595 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
596 long var16 /* : Int */;
597 long var17 /* : Int */;
598 var_p = p0;
599 var = NULL;
600 var_node_list = var;
601 {
602 var1 = parser_work__Parser__pop(var_p);
603 }
604 var_nodearraylist6 = var1;
605 {
606 var2 = parser_work__Parser__pop(var_p);
607 }
608 var_nodearraylist5 = var2;
609 {
610 var3 = parser_work__Parser__pop(var_p);
611 }
612 var_nodearraylist4 = var3;
613 {
614 var4 = parser_work__Parser__pop(var_p);
615 }
616 var_nodearraylist3 = var4;
617 {
618 var5 = parser_work__Parser__pop(var_p);
619 }
620 var_nodearraylist2 = var5;
621 {
622 var6 = parser_work__Parser__pop(var_p);
623 }
624 var_nodearraylist1 = var6;
625 var_tkwifnode2 = var_nodearraylist1;
626 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
627 cltype = type_nullable_parser_nodes__TKwif.color;
628 idtype = type_nullable_parser_nodes__TKwif.id;
629 if(var_tkwifnode2 == NULL) {
630 var7 = 1;
631 } else {
632 if(cltype >= var_tkwifnode2->type->table_size) {
633 var7 = 0;
634 } else {
635 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
636 }
637 }
638 if (unlikely(!var7)) {
639 PRINT_ERROR("Runtime error: %s", "Assert failed");
640 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7272);
641 show_backtrace(1);
642 }
643 var_pexprnode3 = var_nodearraylist3;
644 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
645 cltype9 = type_nullable_parser_nodes__AExpr.color;
646 idtype10 = type_nullable_parser_nodes__AExpr.id;
647 if(var_pexprnode3 == NULL) {
648 var8 = 1;
649 } else {
650 if(cltype9 >= var_pexprnode3->type->table_size) {
651 var8 = 0;
652 } else {
653 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
654 }
655 }
656 if (unlikely(!var8)) {
657 PRINT_ERROR("Runtime error: %s", "Assert failed");
658 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7274);
659 show_backtrace(1);
660 }
661 var_pexprnode5 = var_nodearraylist6;
662 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
663 cltype12 = type_nullable_parser_nodes__AExpr.color;
664 idtype13 = type_nullable_parser_nodes__AExpr.id;
665 if(var_pexprnode5 == NULL) {
666 var11 = 1;
667 } else {
668 if(cltype12 >= var_pexprnode5->type->table_size) {
669 var11 = 0;
670 } else {
671 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
672 }
673 }
674 if (unlikely(!var11)) {
675 PRINT_ERROR("Runtime error: %s", "Assert failed");
676 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7276);
677 show_backtrace(1);
678 }
679 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
680 var15 = NULL;
681 {
682 parser_prod__AIfExpr__init_aifexpr(var14, var_tkwifnode2, var_pexprnode3, var15, var_pexprnode5); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var14:AIfExpr>*/
683 }
684 var_pexprnode1 = var14;
685 var_node_list = var_pexprnode1;
686 var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction254> */
687 {
688 var17 = parser_work__Parser__go_to(var_p, var16);
689 }
690 {
691 parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
692 }
693 RET_LABEL:;
694 }
695 /* method parser#ReduceAction254#action for (self: Object, Parser) */
696 void VIRTUAL_parser__ReduceAction254__action(val* self, val* p0) {
697 parser__ReduceAction254__action(self, p0); /* Direct call parser#ReduceAction254#action on <self:Object(ReduceAction254)>*/
698 RET_LABEL:;
699 }
700 /* method parser#ReduceAction255#action for (self: ReduceAction255, Parser) */
701 void parser__ReduceAction255__action(val* self, val* p0) {
702 val* var_p /* var p: Parser */;
703 val* var /* : null */;
704 val* var_node_list /* var node_list: nullable Object */;
705 val* var1 /* : nullable Object */;
706 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
707 val* var2 /* : nullable Object */;
708 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
709 val* var3 /* : nullable Object */;
710 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
711 val* var4 /* : nullable Object */;
712 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
713 val* var5 /* : nullable Object */;
714 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
715 val* var6 /* : nullable Object */;
716 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
717 val* var7 /* : nullable Object */;
718 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
719 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
720 short int var8 /* : Bool */;
721 int cltype;
722 int idtype;
723 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
724 short int var9 /* : Bool */;
725 int cltype10;
726 int idtype11;
727 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
728 short int var12 /* : Bool */;
729 int cltype13;
730 int idtype14;
731 val* var15 /* : AIfExpr */;
732 val* var16 /* : null */;
733 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
734 long var17 /* : Int */;
735 long var18 /* : Int */;
736 var_p = p0;
737 var = NULL;
738 var_node_list = var;
739 {
740 var1 = parser_work__Parser__pop(var_p);
741 }
742 var_nodearraylist7 = var1;
743 {
744 var2 = parser_work__Parser__pop(var_p);
745 }
746 var_nodearraylist6 = var2;
747 {
748 var3 = parser_work__Parser__pop(var_p);
749 }
750 var_nodearraylist5 = var3;
751 {
752 var4 = parser_work__Parser__pop(var_p);
753 }
754 var_nodearraylist4 = var4;
755 {
756 var5 = parser_work__Parser__pop(var_p);
757 }
758 var_nodearraylist3 = var5;
759 {
760 var6 = parser_work__Parser__pop(var_p);
761 }
762 var_nodearraylist2 = var6;
763 {
764 var7 = parser_work__Parser__pop(var_p);
765 }
766 var_nodearraylist1 = var7;
767 var_tkwifnode2 = var_nodearraylist1;
768 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
769 cltype = type_nullable_parser_nodes__TKwif.color;
770 idtype = type_nullable_parser_nodes__TKwif.id;
771 if(var_tkwifnode2 == NULL) {
772 var8 = 1;
773 } else {
774 if(cltype >= var_tkwifnode2->type->table_size) {
775 var8 = 0;
776 } else {
777 var8 = var_tkwifnode2->type->type_table[cltype] == idtype;
778 }
779 }
780 if (unlikely(!var8)) {
781 PRINT_ERROR("Runtime error: %s", "Assert failed");
782 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7300);
783 show_backtrace(1);
784 }
785 var_pexprnode3 = var_nodearraylist3;
786 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
787 cltype10 = type_nullable_parser_nodes__AExpr.color;
788 idtype11 = type_nullable_parser_nodes__AExpr.id;
789 if(var_pexprnode3 == NULL) {
790 var9 = 1;
791 } else {
792 if(cltype10 >= var_pexprnode3->type->table_size) {
793 var9 = 0;
794 } else {
795 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
796 }
797 }
798 if (unlikely(!var9)) {
799 PRINT_ERROR("Runtime error: %s", "Assert failed");
800 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7302);
801 show_backtrace(1);
802 }
803 var_pexprnode5 = var_nodearraylist7;
804 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
805 cltype13 = type_nullable_parser_nodes__AExpr.color;
806 idtype14 = type_nullable_parser_nodes__AExpr.id;
807 if(var_pexprnode5 == NULL) {
808 var12 = 1;
809 } else {
810 if(cltype13 >= var_pexprnode5->type->table_size) {
811 var12 = 0;
812 } else {
813 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
814 }
815 }
816 if (unlikely(!var12)) {
817 PRINT_ERROR("Runtime error: %s", "Assert failed");
818 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7304);
819 show_backtrace(1);
820 }
821 var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
822 var16 = NULL;
823 {
824 parser_prod__AIfExpr__init_aifexpr(var15, var_tkwifnode2, var_pexprnode3, var16, var_pexprnode5); /* Direct call parser_prod#AIfExpr#init_aifexpr on <var15:AIfExpr>*/
825 }
826 var_pexprnode1 = var15;
827 var_node_list = var_pexprnode1;
828 var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction255> */
829 {
830 var18 = parser_work__Parser__go_to(var_p, var17);
831 }
832 {
833 parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
834 }
835 RET_LABEL:;
836 }
837 /* method parser#ReduceAction255#action for (self: Object, Parser) */
838 void VIRTUAL_parser__ReduceAction255__action(val* self, val* p0) {
839 parser__ReduceAction255__action(self, p0); /* Direct call parser#ReduceAction255#action on <self:Object(ReduceAction255)>*/
840 RET_LABEL:;
841 }
842 /* method parser#ReduceAction258#action for (self: ReduceAction258, Parser) */
843 void parser__ReduceAction258__action(val* self, val* p0) {
844 val* var_p /* var p: Parser */;
845 val* var /* : null */;
846 val* var_node_list /* var node_list: nullable Object */;
847 val* var1 /* : nullable Object */;
848 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
849 val* var2 /* : nullable Object */;
850 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
851 val* var3 /* : nullable Object */;
852 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
853 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
854 short int var4 /* : Bool */;
855 int cltype;
856 int idtype;
857 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
858 short int var5 /* : Bool */;
859 int cltype6;
860 int idtype7;
861 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
862 short int var8 /* : Bool */;
863 int cltype9;
864 int idtype10;
865 val* var11 /* : ALoopExpr */;
866 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
867 long var12 /* : Int */;
868 long var13 /* : Int */;
869 var_p = p0;
870 var = NULL;
871 var_node_list = var;
872 {
873 var1 = parser_work__Parser__pop(var_p);
874 }
875 var_nodearraylist3 = var1;
876 {
877 var2 = parser_work__Parser__pop(var_p);
878 }
879 var_nodearraylist2 = var2;
880 {
881 var3 = parser_work__Parser__pop(var_p);
882 }
883 var_nodearraylist1 = var3;
884 var_tkwloopnode2 = var_nodearraylist1;
885 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
886 cltype = type_nullable_parser_nodes__TKwloop.color;
887 idtype = type_nullable_parser_nodes__TKwloop.id;
888 if(var_tkwloopnode2 == NULL) {
889 var4 = 1;
890 } else {
891 if(cltype >= var_tkwloopnode2->type->table_size) {
892 var4 = 0;
893 } else {
894 var4 = var_tkwloopnode2->type->type_table[cltype] == idtype;
895 }
896 }
897 if (unlikely(!var4)) {
898 PRINT_ERROR("Runtime error: %s", "Assert failed");
899 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7324);
900 show_backtrace(1);
901 }
902 var_pexprnode3 = var_nodearraylist2;
903 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
904 cltype6 = type_nullable_parser_nodes__AExpr.color;
905 idtype7 = type_nullable_parser_nodes__AExpr.id;
906 if(var_pexprnode3 == NULL) {
907 var5 = 1;
908 } else {
909 if(cltype6 >= var_pexprnode3->type->table_size) {
910 var5 = 0;
911 } else {
912 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
913 }
914 }
915 if (unlikely(!var5)) {
916 PRINT_ERROR("Runtime error: %s", "Assert failed");
917 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7326);
918 show_backtrace(1);
919 }
920 var_plabelnode4 = var_nodearraylist3;
921 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
922 cltype9 = type_nullable_parser_nodes__ALabel.color;
923 idtype10 = type_nullable_parser_nodes__ALabel.id;
924 if(var_plabelnode4 == NULL) {
925 var8 = 1;
926 } else {
927 if(cltype9 >= var_plabelnode4->type->table_size) {
928 var8 = 0;
929 } else {
930 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
931 }
932 }
933 if (unlikely(!var8)) {
934 PRINT_ERROR("Runtime error: %s", "Assert failed");
935 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7328);
936 show_backtrace(1);
937 }
938 var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
939 {
940 parser_prod__ALoopExpr__init_aloopexpr(var11, var_tkwloopnode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on <var11:ALoopExpr>*/
941 }
942 var_pexprnode1 = var11;
943 var_node_list = var_pexprnode1;
944 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction258> */
945 {
946 var13 = parser_work__Parser__go_to(var_p, var12);
947 }
948 {
949 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
950 }
951 RET_LABEL:;
952 }
953 /* method parser#ReduceAction258#action for (self: Object, Parser) */
954 void VIRTUAL_parser__ReduceAction258__action(val* self, val* p0) {
955 parser__ReduceAction258__action(self, p0); /* Direct call parser#ReduceAction258#action on <self:Object(ReduceAction258)>*/
956 RET_LABEL:;
957 }
958 /* method parser#ReduceAction259#action for (self: ReduceAction259, Parser) */
959 void parser__ReduceAction259__action(val* self, val* p0) {
960 val* var_p /* var p: Parser */;
961 val* var /* : null */;
962 val* var_node_list /* var node_list: nullable Object */;
963 val* var1 /* : nullable Object */;
964 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
965 val* var2 /* : nullable Object */;
966 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
967 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
968 short int var3 /* : Bool */;
969 int cltype;
970 int idtype;
971 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
972 short int var4 /* : Bool */;
973 int cltype5;
974 int idtype6;
975 val* var7 /* : ALoopExpr */;
976 val* var8 /* : null */;
977 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
978 long var9 /* : Int */;
979 long var10 /* : Int */;
980 var_p = p0;
981 var = NULL;
982 var_node_list = var;
983 {
984 var1 = parser_work__Parser__pop(var_p);
985 }
986 var_nodearraylist2 = var1;
987 {
988 var2 = parser_work__Parser__pop(var_p);
989 }
990 var_nodearraylist1 = var2;
991 var_tkwloopnode2 = var_nodearraylist1;
992 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
993 cltype = type_nullable_parser_nodes__TKwloop.color;
994 idtype = type_nullable_parser_nodes__TKwloop.id;
995 if(var_tkwloopnode2 == NULL) {
996 var3 = 1;
997 } else {
998 if(cltype >= var_tkwloopnode2->type->table_size) {
999 var3 = 0;
1000 } else {
1001 var3 = var_tkwloopnode2->type->type_table[cltype] == idtype;
1002 }
1003 }
1004 if (unlikely(!var3)) {
1005 PRINT_ERROR("Runtime error: %s", "Assert failed");
1006 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7346);
1007 show_backtrace(1);
1008 }
1009 var_pexprnode3 = var_nodearraylist2;
1010 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1011 cltype5 = type_nullable_parser_nodes__AExpr.color;
1012 idtype6 = type_nullable_parser_nodes__AExpr.id;
1013 if(var_pexprnode3 == NULL) {
1014 var4 = 1;
1015 } else {
1016 if(cltype5 >= var_pexprnode3->type->table_size) {
1017 var4 = 0;
1018 } else {
1019 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
1020 }
1021 }
1022 if (unlikely(!var4)) {
1023 PRINT_ERROR("Runtime error: %s", "Assert failed");
1024 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7348);
1025 show_backtrace(1);
1026 }
1027 var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
1028 var8 = NULL;
1029 {
1030 parser_prod__ALoopExpr__init_aloopexpr(var7, var_tkwloopnode2, var_pexprnode3, var8); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on <var7:ALoopExpr>*/
1031 }
1032 var_pexprnode1 = var7;
1033 var_node_list = var_pexprnode1;
1034 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction259> */
1035 {
1036 var10 = parser_work__Parser__go_to(var_p, var9);
1037 }
1038 {
1039 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1040 }
1041 RET_LABEL:;
1042 }
1043 /* method parser#ReduceAction259#action for (self: Object, Parser) */
1044 void VIRTUAL_parser__ReduceAction259__action(val* self, val* p0) {
1045 parser__ReduceAction259__action(self, p0); /* Direct call parser#ReduceAction259#action on <self:Object(ReduceAction259)>*/
1046 RET_LABEL:;
1047 }
1048 /* method parser#ReduceAction260#action for (self: ReduceAction260, Parser) */
1049 void parser__ReduceAction260__action(val* self, val* p0) {
1050 val* var_p /* var p: Parser */;
1051 val* var /* : null */;
1052 val* var_node_list /* var node_list: nullable Object */;
1053 val* var1 /* : nullable Object */;
1054 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1055 val* var2 /* : nullable Object */;
1056 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1057 val* var3 /* : nullable Object */;
1058 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1059 val* var4 /* : nullable Object */;
1060 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1061 val* var5 /* : nullable Object */;
1062 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1063 val* var6 /* : nullable Object */;
1064 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1065 val* var7 /* : nullable Object */;
1066 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1067 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
1068 short int var8 /* : Bool */;
1069 int cltype;
1070 int idtype;
1071 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1072 short int var9 /* : Bool */;
1073 int cltype10;
1074 int idtype11;
1075 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
1076 short int var12 /* : Bool */;
1077 int cltype13;
1078 int idtype14;
1079 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1080 short int var15 /* : Bool */;
1081 int cltype16;
1082 int idtype17;
1083 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
1084 short int var18 /* : Bool */;
1085 int cltype19;
1086 int idtype20;
1087 val* var21 /* : AWhileExpr */;
1088 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
1089 long var22 /* : Int */;
1090 long var23 /* : Int */;
1091 var_p = p0;
1092 var = NULL;
1093 var_node_list = var;
1094 {
1095 var1 = parser_work__Parser__pop(var_p);
1096 }
1097 var_nodearraylist7 = var1;
1098 {
1099 var2 = parser_work__Parser__pop(var_p);
1100 }
1101 var_nodearraylist6 = var2;
1102 {
1103 var3 = parser_work__Parser__pop(var_p);
1104 }
1105 var_nodearraylist5 = var3;
1106 {
1107 var4 = parser_work__Parser__pop(var_p);
1108 }
1109 var_nodearraylist4 = var4;
1110 {
1111 var5 = parser_work__Parser__pop(var_p);
1112 }
1113 var_nodearraylist3 = var5;
1114 {
1115 var6 = parser_work__Parser__pop(var_p);
1116 }
1117 var_nodearraylist2 = var6;
1118 {
1119 var7 = parser_work__Parser__pop(var_p);
1120 }
1121 var_nodearraylist1 = var7;
1122 var_tkwwhilenode2 = var_nodearraylist1;
1123 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
1124 cltype = type_nullable_parser_nodes__TKwwhile.color;
1125 idtype = type_nullable_parser_nodes__TKwwhile.id;
1126 if(var_tkwwhilenode2 == NULL) {
1127 var8 = 1;
1128 } else {
1129 if(cltype >= var_tkwwhilenode2->type->table_size) {
1130 var8 = 0;
1131 } else {
1132 var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
1133 }
1134 }
1135 if (unlikely(!var8)) {
1136 PRINT_ERROR("Runtime error: %s", "Assert failed");
1137 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7371);
1138 show_backtrace(1);
1139 }
1140 var_pexprnode3 = var_nodearraylist3;
1141 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1142 cltype10 = type_nullable_parser_nodes__AExpr.color;
1143 idtype11 = type_nullable_parser_nodes__AExpr.id;
1144 if(var_pexprnode3 == NULL) {
1145 var9 = 1;
1146 } else {
1147 if(cltype10 >= var_pexprnode3->type->table_size) {
1148 var9 = 0;
1149 } else {
1150 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
1151 }
1152 }
1153 if (unlikely(!var9)) {
1154 PRINT_ERROR("Runtime error: %s", "Assert failed");
1155 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7373);
1156 show_backtrace(1);
1157 }
1158 var_tkwdonode4 = var_nodearraylist5;
1159 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
1160 cltype13 = type_nullable_parser_nodes__TKwdo.color;
1161 idtype14 = type_nullable_parser_nodes__TKwdo.id;
1162 if(var_tkwdonode4 == NULL) {
1163 var12 = 1;
1164 } else {
1165 if(cltype13 >= var_tkwdonode4->type->table_size) {
1166 var12 = 0;
1167 } else {
1168 var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14;
1169 }
1170 }
1171 if (unlikely(!var12)) {
1172 PRINT_ERROR("Runtime error: %s", "Assert failed");
1173 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7375);
1174 show_backtrace(1);
1175 }
1176 var_pexprnode5 = var_nodearraylist6;
1177 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1178 cltype16 = type_nullable_parser_nodes__AExpr.color;
1179 idtype17 = type_nullable_parser_nodes__AExpr.id;
1180 if(var_pexprnode5 == NULL) {
1181 var15 = 1;
1182 } else {
1183 if(cltype16 >= var_pexprnode5->type->table_size) {
1184 var15 = 0;
1185 } else {
1186 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
1187 }
1188 }
1189 if (unlikely(!var15)) {
1190 PRINT_ERROR("Runtime error: %s", "Assert failed");
1191 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7377);
1192 show_backtrace(1);
1193 }
1194 var_plabelnode6 = var_nodearraylist7;
1195 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
1196 cltype19 = type_nullable_parser_nodes__ALabel.color;
1197 idtype20 = type_nullable_parser_nodes__ALabel.id;
1198 if(var_plabelnode6 == NULL) {
1199 var18 = 1;
1200 } else {
1201 if(cltype19 >= var_plabelnode6->type->table_size) {
1202 var18 = 0;
1203 } else {
1204 var18 = var_plabelnode6->type->type_table[cltype19] == idtype20;
1205 }
1206 }
1207 if (unlikely(!var18)) {
1208 PRINT_ERROR("Runtime error: %s", "Assert failed");
1209 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7379);
1210 show_backtrace(1);
1211 }
1212 var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
1213 {
1214 parser_prod__AWhileExpr__init_awhileexpr(var21, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on <var21:AWhileExpr>*/
1215 }
1216 var_pexprnode1 = var21;
1217 var_node_list = var_pexprnode1;
1218 var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction260> */
1219 {
1220 var23 = parser_work__Parser__go_to(var_p, var22);
1221 }
1222 {
1223 parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1224 }
1225 RET_LABEL:;
1226 }
1227 /* method parser#ReduceAction260#action for (self: Object, Parser) */
1228 void VIRTUAL_parser__ReduceAction260__action(val* self, val* p0) {
1229 parser__ReduceAction260__action(self, p0); /* Direct call parser#ReduceAction260#action on <self:Object(ReduceAction260)>*/
1230 RET_LABEL:;
1231 }
1232 /* method parser#ReduceAction261#action for (self: ReduceAction261, Parser) */
1233 void parser__ReduceAction261__action(val* self, val* p0) {
1234 val* var_p /* var p: Parser */;
1235 val* var /* : null */;
1236 val* var_node_list /* var node_list: nullable Object */;
1237 val* var1 /* : nullable Object */;
1238 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1239 val* var2 /* : nullable Object */;
1240 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1241 val* var3 /* : nullable Object */;
1242 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1243 val* var4 /* : nullable Object */;
1244 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1245 val* var5 /* : nullable Object */;
1246 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1247 val* var6 /* : nullable Object */;
1248 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1249 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
1250 short int var7 /* : Bool */;
1251 int cltype;
1252 int idtype;
1253 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1254 short int var8 /* : Bool */;
1255 int cltype9;
1256 int idtype10;
1257 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
1258 short int var11 /* : Bool */;
1259 int cltype12;
1260 int idtype13;
1261 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1262 short int var14 /* : Bool */;
1263 int cltype15;
1264 int idtype16;
1265 val* var17 /* : AWhileExpr */;
1266 val* var18 /* : null */;
1267 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
1268 long var19 /* : Int */;
1269 long var20 /* : Int */;
1270 var_p = p0;
1271 var = NULL;
1272 var_node_list = var;
1273 {
1274 var1 = parser_work__Parser__pop(var_p);
1275 }
1276 var_nodearraylist6 = var1;
1277 {
1278 var2 = parser_work__Parser__pop(var_p);
1279 }
1280 var_nodearraylist5 = var2;
1281 {
1282 var3 = parser_work__Parser__pop(var_p);
1283 }
1284 var_nodearraylist4 = var3;
1285 {
1286 var4 = parser_work__Parser__pop(var_p);
1287 }
1288 var_nodearraylist3 = var4;
1289 {
1290 var5 = parser_work__Parser__pop(var_p);
1291 }
1292 var_nodearraylist2 = var5;
1293 {
1294 var6 = parser_work__Parser__pop(var_p);
1295 }
1296 var_nodearraylist1 = var6;
1297 var_tkwwhilenode2 = var_nodearraylist1;
1298 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
1299 cltype = type_nullable_parser_nodes__TKwwhile.color;
1300 idtype = type_nullable_parser_nodes__TKwwhile.id;
1301 if(var_tkwwhilenode2 == NULL) {
1302 var7 = 1;
1303 } else {
1304 if(cltype >= var_tkwwhilenode2->type->table_size) {
1305 var7 = 0;
1306 } else {
1307 var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
1308 }
1309 }
1310 if (unlikely(!var7)) {
1311 PRINT_ERROR("Runtime error: %s", "Assert failed");
1312 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7403);
1313 show_backtrace(1);
1314 }
1315 var_pexprnode3 = var_nodearraylist3;
1316 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1317 cltype9 = type_nullable_parser_nodes__AExpr.color;
1318 idtype10 = type_nullable_parser_nodes__AExpr.id;
1319 if(var_pexprnode3 == NULL) {
1320 var8 = 1;
1321 } else {
1322 if(cltype9 >= var_pexprnode3->type->table_size) {
1323 var8 = 0;
1324 } else {
1325 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
1326 }
1327 }
1328 if (unlikely(!var8)) {
1329 PRINT_ERROR("Runtime error: %s", "Assert failed");
1330 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7405);
1331 show_backtrace(1);
1332 }
1333 var_tkwdonode4 = var_nodearraylist5;
1334 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
1335 cltype12 = type_nullable_parser_nodes__TKwdo.color;
1336 idtype13 = type_nullable_parser_nodes__TKwdo.id;
1337 if(var_tkwdonode4 == NULL) {
1338 var11 = 1;
1339 } else {
1340 if(cltype12 >= var_tkwdonode4->type->table_size) {
1341 var11 = 0;
1342 } else {
1343 var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13;
1344 }
1345 }
1346 if (unlikely(!var11)) {
1347 PRINT_ERROR("Runtime error: %s", "Assert failed");
1348 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7407);
1349 show_backtrace(1);
1350 }
1351 var_pexprnode5 = var_nodearraylist6;
1352 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1353 cltype15 = type_nullable_parser_nodes__AExpr.color;
1354 idtype16 = type_nullable_parser_nodes__AExpr.id;
1355 if(var_pexprnode5 == NULL) {
1356 var14 = 1;
1357 } else {
1358 if(cltype15 >= var_pexprnode5->type->table_size) {
1359 var14 = 0;
1360 } else {
1361 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
1362 }
1363 }
1364 if (unlikely(!var14)) {
1365 PRINT_ERROR("Runtime error: %s", "Assert failed");
1366 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7409);
1367 show_backtrace(1);
1368 }
1369 var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
1370 var18 = NULL;
1371 {
1372 parser_prod__AWhileExpr__init_awhileexpr(var17, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var18); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on <var17:AWhileExpr>*/
1373 }
1374 var_pexprnode1 = var17;
1375 var_node_list = var_pexprnode1;
1376 var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction261> */
1377 {
1378 var20 = parser_work__Parser__go_to(var_p, var19);
1379 }
1380 {
1381 parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1382 }
1383 RET_LABEL:;
1384 }
1385 /* method parser#ReduceAction261#action for (self: Object, Parser) */
1386 void VIRTUAL_parser__ReduceAction261__action(val* self, val* p0) {
1387 parser__ReduceAction261__action(self, p0); /* Direct call parser#ReduceAction261#action on <self:Object(ReduceAction261)>*/
1388 RET_LABEL:;
1389 }
1390 /* method parser#ReduceAction262#action for (self: ReduceAction262, Parser) */
1391 void parser__ReduceAction262__action(val* self, val* p0) {
1392 val* var_p /* var p: Parser */;
1393 val* var /* : null */;
1394 val* var_node_list /* var node_list: nullable Object */;
1395 val* var1 /* : nullable Object */;
1396 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1397 val* var2 /* : nullable Object */;
1398 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1399 val* var3 /* : nullable Object */;
1400 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1401 val* var4 /* : nullable Object */;
1402 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1403 val* var5 /* : nullable Object */;
1404 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1405 val* var6 /* : nullable Object */;
1406 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1407 val* var7 /* : nullable Object */;
1408 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1409 val* var8 /* : nullable Object */;
1410 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1411 val* var9 /* : nullable Object */;
1412 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1413 val* var10 /* : nullable Object */;
1414 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1415 val* var11 /* : nullable Object */;
1416 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1417 val* var12 /* : Array[Object] */;
1418 val* var_listnode4 /* var listnode4: Array[Object] */;
1419 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
1420 short int var13 /* : Bool */;
1421 int cltype;
1422 int idtype;
1423 val* var_listnode3 /* var listnode3: nullable Object */;
1424 short int var14 /* : Bool */;
1425 int cltype15;
1426 int idtype16;
1427 val* var17 /* : Array[Object] */;
1428 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1429 short int var18 /* : Bool */;
1430 int cltype19;
1431 int idtype20;
1432 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
1433 short int var21 /* : Bool */;
1434 int cltype22;
1435 int idtype23;
1436 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1437 short int var24 /* : Bool */;
1438 int cltype25;
1439 int idtype26;
1440 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
1441 short int var27 /* : Bool */;
1442 int cltype28;
1443 int idtype29;
1444 val* var30 /* : AForExpr */;
1445 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
1446 long var31 /* : Int */;
1447 long var32 /* : Int */;
1448 var_p = p0;
1449 var = NULL;
1450 var_node_list = var;
1451 {
1452 var1 = parser_work__Parser__pop(var_p);
1453 }
1454 var_nodearraylist11 = var1;
1455 {
1456 var2 = parser_work__Parser__pop(var_p);
1457 }
1458 var_nodearraylist10 = var2;
1459 {
1460 var3 = parser_work__Parser__pop(var_p);
1461 }
1462 var_nodearraylist9 = var3;
1463 {
1464 var4 = parser_work__Parser__pop(var_p);
1465 }
1466 var_nodearraylist8 = var4;
1467 {
1468 var5 = parser_work__Parser__pop(var_p);
1469 }
1470 var_nodearraylist7 = var5;
1471 {
1472 var6 = parser_work__Parser__pop(var_p);
1473 }
1474 var_nodearraylist6 = var6;
1475 {
1476 var7 = parser_work__Parser__pop(var_p);
1477 }
1478 var_nodearraylist5 = var7;
1479 {
1480 var8 = parser_work__Parser__pop(var_p);
1481 }
1482 var_nodearraylist4 = var8;
1483 {
1484 var9 = parser_work__Parser__pop(var_p);
1485 }
1486 var_nodearraylist3 = var9;
1487 {
1488 var10 = parser_work__Parser__pop(var_p);
1489 }
1490 var_nodearraylist2 = var10;
1491 {
1492 var11 = parser_work__Parser__pop(var_p);
1493 }
1494 var_nodearraylist1 = var11;
1495 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
1496 {
1497 ((void (*)(val*))(var12->class->vft[COLOR_kernel__Object__init]))(var12) /* init on <var12:Array[Object]>*/;
1498 }
1499 var_listnode4 = var12;
1500 var_tkwfornode2 = var_nodearraylist1;
1501 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
1502 cltype = type_nullable_parser_nodes__TKwfor.color;
1503 idtype = type_nullable_parser_nodes__TKwfor.id;
1504 if(var_tkwfornode2 == NULL) {
1505 var13 = 1;
1506 } else {
1507 if(cltype >= var_tkwfornode2->type->table_size) {
1508 var13 = 0;
1509 } else {
1510 var13 = var_tkwfornode2->type->type_table[cltype] == idtype;
1511 }
1512 }
1513 if (unlikely(!var13)) {
1514 PRINT_ERROR("Runtime error: %s", "Assert failed");
1515 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7439);
1516 show_backtrace(1);
1517 }
1518 var_listnode3 = var_nodearraylist3;
1519 /* <var_listnode3:nullable Object> isa Array[Object] */
1520 cltype15 = type_array__Arraykernel__Object.color;
1521 idtype16 = type_array__Arraykernel__Object.id;
1522 if(var_listnode3 == NULL) {
1523 var14 = 0;
1524 } else {
1525 if(cltype15 >= var_listnode3->type->table_size) {
1526 var14 = 0;
1527 } else {
1528 var14 = var_listnode3->type->type_table[cltype15] == idtype16;
1529 }
1530 }
1531 if (unlikely(!var14)) {
1532 PRINT_ERROR("Runtime error: %s", "Assert failed");
1533 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7441);
1534 show_backtrace(1);
1535 }
1536 {
1537 var17 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3);
1538 }
1539 var_listnode4 = var17;
1540 var_pexprnode5 = var_nodearraylist7;
1541 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1542 cltype19 = type_nullable_parser_nodes__AExpr.color;
1543 idtype20 = type_nullable_parser_nodes__AExpr.id;
1544 if(var_pexprnode5 == NULL) {
1545 var18 = 1;
1546 } else {
1547 if(cltype19 >= var_pexprnode5->type->table_size) {
1548 var18 = 0;
1549 } else {
1550 var18 = var_pexprnode5->type->type_table[cltype19] == idtype20;
1551 }
1552 }
1553 if (unlikely(!var18)) {
1554 PRINT_ERROR("Runtime error: %s", "Assert failed");
1555 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7444);
1556 show_backtrace(1);
1557 }
1558 var_tkwdonode6 = var_nodearraylist9;
1559 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
1560 cltype22 = type_nullable_parser_nodes__TKwdo.color;
1561 idtype23 = type_nullable_parser_nodes__TKwdo.id;
1562 if(var_tkwdonode6 == NULL) {
1563 var21 = 1;
1564 } else {
1565 if(cltype22 >= var_tkwdonode6->type->table_size) {
1566 var21 = 0;
1567 } else {
1568 var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23;
1569 }
1570 }
1571 if (unlikely(!var21)) {
1572 PRINT_ERROR("Runtime error: %s", "Assert failed");
1573 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7446);
1574 show_backtrace(1);
1575 }
1576 var_pexprnode7 = var_nodearraylist10;
1577 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1578 cltype25 = type_nullable_parser_nodes__AExpr.color;
1579 idtype26 = type_nullable_parser_nodes__AExpr.id;
1580 if(var_pexprnode7 == NULL) {
1581 var24 = 1;
1582 } else {
1583 if(cltype25 >= var_pexprnode7->type->table_size) {
1584 var24 = 0;
1585 } else {
1586 var24 = var_pexprnode7->type->type_table[cltype25] == idtype26;
1587 }
1588 }
1589 if (unlikely(!var24)) {
1590 PRINT_ERROR("Runtime error: %s", "Assert failed");
1591 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7448);
1592 show_backtrace(1);
1593 }
1594 var_plabelnode8 = var_nodearraylist11;
1595 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
1596 cltype28 = type_nullable_parser_nodes__ALabel.color;
1597 idtype29 = type_nullable_parser_nodes__ALabel.id;
1598 if(var_plabelnode8 == NULL) {
1599 var27 = 1;
1600 } else {
1601 if(cltype28 >= var_plabelnode8->type->table_size) {
1602 var27 = 0;
1603 } else {
1604 var27 = var_plabelnode8->type->type_table[cltype28] == idtype29;
1605 }
1606 }
1607 if (unlikely(!var27)) {
1608 PRINT_ERROR("Runtime error: %s", "Assert failed");
1609 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7450);
1610 show_backtrace(1);
1611 }
1612 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
1613 {
1614 parser_prod__AForExpr__init_aforexpr(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8); /* Direct call parser_prod#AForExpr#init_aforexpr on <var30:AForExpr>*/
1615 }
1616 var_pexprnode1 = var30;
1617 var_node_list = var_pexprnode1;
1618 var31 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction262> */
1619 {
1620 var32 = parser_work__Parser__go_to(var_p, var31);
1621 }
1622 {
1623 parser_work__Parser__push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1624 }
1625 RET_LABEL:;
1626 }
1627 /* method parser#ReduceAction262#action for (self: Object, Parser) */
1628 void VIRTUAL_parser__ReduceAction262__action(val* self, val* p0) {
1629 parser__ReduceAction262__action(self, p0); /* Direct call parser#ReduceAction262#action on <self:Object(ReduceAction262)>*/
1630 RET_LABEL:;
1631 }
1632 /* method parser#ReduceAction263#action for (self: ReduceAction263, Parser) */
1633 void parser__ReduceAction263__action(val* self, val* p0) {
1634 val* var_p /* var p: Parser */;
1635 val* var /* : null */;
1636 val* var_node_list /* var node_list: nullable Object */;
1637 val* var1 /* : nullable Object */;
1638 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1639 val* var2 /* : nullable Object */;
1640 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1641 val* var3 /* : nullable Object */;
1642 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1643 val* var4 /* : nullable Object */;
1644 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1645 val* var5 /* : nullable Object */;
1646 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1647 val* var6 /* : nullable Object */;
1648 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1649 val* var7 /* : nullable Object */;
1650 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1651 val* var8 /* : nullable Object */;
1652 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1653 val* var9 /* : nullable Object */;
1654 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1655 val* var10 /* : nullable Object */;
1656 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1657 val* var11 /* : Array[Object] */;
1658 val* var_listnode4 /* var listnode4: Array[Object] */;
1659 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
1660 short int var12 /* : Bool */;
1661 int cltype;
1662 int idtype;
1663 val* var_listnode3 /* var listnode3: nullable Object */;
1664 short int var13 /* : Bool */;
1665 int cltype14;
1666 int idtype15;
1667 val* var16 /* : Array[Object] */;
1668 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1669 short int var17 /* : Bool */;
1670 int cltype18;
1671 int idtype19;
1672 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
1673 short int var20 /* : Bool */;
1674 int cltype21;
1675 int idtype22;
1676 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1677 short int var23 /* : Bool */;
1678 int cltype24;
1679 int idtype25;
1680 val* var26 /* : AForExpr */;
1681 val* var27 /* : null */;
1682 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
1683 long var28 /* : Int */;
1684 long var29 /* : Int */;
1685 var_p = p0;
1686 var = NULL;
1687 var_node_list = var;
1688 {
1689 var1 = parser_work__Parser__pop(var_p);
1690 }
1691 var_nodearraylist10 = var1;
1692 {
1693 var2 = parser_work__Parser__pop(var_p);
1694 }
1695 var_nodearraylist9 = var2;
1696 {
1697 var3 = parser_work__Parser__pop(var_p);
1698 }
1699 var_nodearraylist8 = var3;
1700 {
1701 var4 = parser_work__Parser__pop(var_p);
1702 }
1703 var_nodearraylist7 = var4;
1704 {
1705 var5 = parser_work__Parser__pop(var_p);
1706 }
1707 var_nodearraylist6 = var5;
1708 {
1709 var6 = parser_work__Parser__pop(var_p);
1710 }
1711 var_nodearraylist5 = var6;
1712 {
1713 var7 = parser_work__Parser__pop(var_p);
1714 }
1715 var_nodearraylist4 = var7;
1716 {
1717 var8 = parser_work__Parser__pop(var_p);
1718 }
1719 var_nodearraylist3 = var8;
1720 {
1721 var9 = parser_work__Parser__pop(var_p);
1722 }
1723 var_nodearraylist2 = var9;
1724 {
1725 var10 = parser_work__Parser__pop(var_p);
1726 }
1727 var_nodearraylist1 = var10;
1728 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
1729 {
1730 ((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on <var11:Array[Object]>*/;
1731 }
1732 var_listnode4 = var11;
1733 var_tkwfornode2 = var_nodearraylist1;
1734 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
1735 cltype = type_nullable_parser_nodes__TKwfor.color;
1736 idtype = type_nullable_parser_nodes__TKwfor.id;
1737 if(var_tkwfornode2 == NULL) {
1738 var12 = 1;
1739 } else {
1740 if(cltype >= var_tkwfornode2->type->table_size) {
1741 var12 = 0;
1742 } else {
1743 var12 = var_tkwfornode2->type->type_table[cltype] == idtype;
1744 }
1745 }
1746 if (unlikely(!var12)) {
1747 PRINT_ERROR("Runtime error: %s", "Assert failed");
1748 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7480);
1749 show_backtrace(1);
1750 }
1751 var_listnode3 = var_nodearraylist3;
1752 /* <var_listnode3:nullable Object> isa Array[Object] */
1753 cltype14 = type_array__Arraykernel__Object.color;
1754 idtype15 = type_array__Arraykernel__Object.id;
1755 if(var_listnode3 == NULL) {
1756 var13 = 0;
1757 } else {
1758 if(cltype14 >= var_listnode3->type->table_size) {
1759 var13 = 0;
1760 } else {
1761 var13 = var_listnode3->type->type_table[cltype14] == idtype15;
1762 }
1763 }
1764 if (unlikely(!var13)) {
1765 PRINT_ERROR("Runtime error: %s", "Assert failed");
1766 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7482);
1767 show_backtrace(1);
1768 }
1769 {
1770 var16 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3);
1771 }
1772 var_listnode4 = var16;
1773 var_pexprnode5 = var_nodearraylist7;
1774 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1775 cltype18 = type_nullable_parser_nodes__AExpr.color;
1776 idtype19 = type_nullable_parser_nodes__AExpr.id;
1777 if(var_pexprnode5 == NULL) {
1778 var17 = 1;
1779 } else {
1780 if(cltype18 >= var_pexprnode5->type->table_size) {
1781 var17 = 0;
1782 } else {
1783 var17 = var_pexprnode5->type->type_table[cltype18] == idtype19;
1784 }
1785 }
1786 if (unlikely(!var17)) {
1787 PRINT_ERROR("Runtime error: %s", "Assert failed");
1788 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7485);
1789 show_backtrace(1);
1790 }
1791 var_tkwdonode6 = var_nodearraylist9;
1792 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
1793 cltype21 = type_nullable_parser_nodes__TKwdo.color;
1794 idtype22 = type_nullable_parser_nodes__TKwdo.id;
1795 if(var_tkwdonode6 == NULL) {
1796 var20 = 1;
1797 } else {
1798 if(cltype21 >= var_tkwdonode6->type->table_size) {
1799 var20 = 0;
1800 } else {
1801 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
1802 }
1803 }
1804 if (unlikely(!var20)) {
1805 PRINT_ERROR("Runtime error: %s", "Assert failed");
1806 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7487);
1807 show_backtrace(1);
1808 }
1809 var_pexprnode7 = var_nodearraylist10;
1810 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1811 cltype24 = type_nullable_parser_nodes__AExpr.color;
1812 idtype25 = type_nullable_parser_nodes__AExpr.id;
1813 if(var_pexprnode7 == NULL) {
1814 var23 = 1;
1815 } else {
1816 if(cltype24 >= var_pexprnode7->type->table_size) {
1817 var23 = 0;
1818 } else {
1819 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
1820 }
1821 }
1822 if (unlikely(!var23)) {
1823 PRINT_ERROR("Runtime error: %s", "Assert failed");
1824 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7489);
1825 show_backtrace(1);
1826 }
1827 var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
1828 var27 = NULL;
1829 {
1830 parser_prod__AForExpr__init_aforexpr(var26, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var27); /* Direct call parser_prod#AForExpr#init_aforexpr on <var26:AForExpr>*/
1831 }
1832 var_pexprnode1 = var26;
1833 var_node_list = var_pexprnode1;
1834 var28 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction263> */
1835 {
1836 var29 = parser_work__Parser__go_to(var_p, var28);
1837 }
1838 {
1839 parser_work__Parser__push(var_p, var29, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1840 }
1841 RET_LABEL:;
1842 }
1843 /* method parser#ReduceAction263#action for (self: Object, Parser) */
1844 void VIRTUAL_parser__ReduceAction263__action(val* self, val* p0) {
1845 parser__ReduceAction263__action(self, p0); /* Direct call parser#ReduceAction263#action on <self:Object(ReduceAction263)>*/
1846 RET_LABEL:;
1847 }
1848 /* method parser#ReduceAction264#action for (self: ReduceAction264, Parser) */
1849 void parser__ReduceAction264__action(val* self, val* p0) {
1850 val* var_p /* var p: Parser */;
1851 val* var /* : null */;
1852 val* var_node_list /* var node_list: nullable Object */;
1853 val* var1 /* : nullable Object */;
1854 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1855 val* var2 /* : nullable Object */;
1856 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1857 val* var3 /* : nullable Object */;
1858 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1859 val* var4 /* : nullable Object */;
1860 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1861 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
1862 short int var5 /* : Bool */;
1863 int cltype;
1864 int idtype;
1865 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1866 short int var6 /* : Bool */;
1867 int cltype7;
1868 int idtype8;
1869 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1870 short int var9 /* : Bool */;
1871 int cltype10;
1872 int idtype11;
1873 val* var12 /* : AAssertExpr */;
1874 val* var13 /* : null */;
1875 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
1876 long var14 /* : Int */;
1877 long var15 /* : Int */;
1878 var_p = p0;
1879 var = NULL;
1880 var_node_list = var;
1881 {
1882 var1 = parser_work__Parser__pop(var_p);
1883 }
1884 var_nodearraylist4 = var1;
1885 {
1886 var2 = parser_work__Parser__pop(var_p);
1887 }
1888 var_nodearraylist3 = var2;
1889 {
1890 var3 = parser_work__Parser__pop(var_p);
1891 }
1892 var_nodearraylist2 = var3;
1893 {
1894 var4 = parser_work__Parser__pop(var_p);
1895 }
1896 var_nodearraylist1 = var4;
1897 var_tkwassertnode2 = var_nodearraylist1;
1898 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
1899 cltype = type_nullable_parser_nodes__TKwassert.color;
1900 idtype = type_nullable_parser_nodes__TKwassert.id;
1901 if(var_tkwassertnode2 == NULL) {
1902 var5 = 1;
1903 } else {
1904 if(cltype >= var_tkwassertnode2->type->table_size) {
1905 var5 = 0;
1906 } else {
1907 var5 = var_tkwassertnode2->type->type_table[cltype] == idtype;
1908 }
1909 }
1910 if (unlikely(!var5)) {
1911 PRINT_ERROR("Runtime error: %s", "Assert failed");
1912 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7512);
1913 show_backtrace(1);
1914 }
1915 var_pexprnode4 = var_nodearraylist2;
1916 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1917 cltype7 = type_nullable_parser_nodes__AExpr.color;
1918 idtype8 = type_nullable_parser_nodes__AExpr.id;
1919 if(var_pexprnode4 == NULL) {
1920 var6 = 1;
1921 } else {
1922 if(cltype7 >= var_pexprnode4->type->table_size) {
1923 var6 = 0;
1924 } else {
1925 var6 = var_pexprnode4->type->type_table[cltype7] == idtype8;
1926 }
1927 }
1928 if (unlikely(!var6)) {
1929 PRINT_ERROR("Runtime error: %s", "Assert failed");
1930 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7514);
1931 show_backtrace(1);
1932 }
1933 var_pexprnode5 = var_nodearraylist4;
1934 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1935 cltype10 = type_nullable_parser_nodes__AExpr.color;
1936 idtype11 = type_nullable_parser_nodes__AExpr.id;
1937 if(var_pexprnode5 == NULL) {
1938 var9 = 1;
1939 } else {
1940 if(cltype10 >= var_pexprnode5->type->table_size) {
1941 var9 = 0;
1942 } else {
1943 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
1944 }
1945 }
1946 if (unlikely(!var9)) {
1947 PRINT_ERROR("Runtime error: %s", "Assert failed");
1948 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7516);
1949 show_backtrace(1);
1950 }
1951 var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
1952 var13 = NULL;
1953 {
1954 parser_prod__AAssertExpr__init_aassertexpr(var12, var_tkwassertnode2, var13, var_pexprnode4, var_pexprnode5); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var12:AAssertExpr>*/
1955 }
1956 var_pexprnode1 = var12;
1957 var_node_list = var_pexprnode1;
1958 var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction264> */
1959 {
1960 var15 = parser_work__Parser__go_to(var_p, var14);
1961 }
1962 {
1963 parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1964 }
1965 RET_LABEL:;
1966 }
1967 /* method parser#ReduceAction264#action for (self: Object, Parser) */
1968 void VIRTUAL_parser__ReduceAction264__action(val* self, val* p0) {
1969 parser__ReduceAction264__action(self, p0); /* Direct call parser#ReduceAction264#action on <self:Object(ReduceAction264)>*/
1970 RET_LABEL:;
1971 }
1972 /* method parser#ReduceAction265#action for (self: ReduceAction265, Parser) */
1973 void parser__ReduceAction265__action(val* self, val* p0) {
1974 val* var_p /* var p: Parser */;
1975 val* var /* : null */;
1976 val* var_node_list /* var node_list: nullable Object */;
1977 val* var1 /* : nullable Object */;
1978 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1979 val* var2 /* : nullable Object */;
1980 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1981 val* var3 /* : nullable Object */;
1982 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1983 val* var4 /* : nullable Object */;
1984 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1985 val* var5 /* : nullable Object */;
1986 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1987 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
1988 short int var6 /* : Bool */;
1989 int cltype;
1990 int idtype;
1991 val* var_tidnode3 /* var tidnode3: nullable Object */;
1992 short int var7 /* : Bool */;
1993 int cltype8;
1994 int idtype9;
1995 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1996 short int var10 /* : Bool */;
1997 int cltype11;
1998 int idtype12;
1999 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2000 short int var13 /* : Bool */;
2001 int cltype14;
2002 int idtype15;
2003 val* var16 /* : AAssertExpr */;
2004 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
2005 long var17 /* : Int */;
2006 long var18 /* : Int */;
2007 var_p = p0;
2008 var = NULL;
2009 var_node_list = var;
2010 {
2011 var1 = parser_work__Parser__pop(var_p);
2012 }
2013 var_nodearraylist5 = var1;
2014 {
2015 var2 = parser_work__Parser__pop(var_p);
2016 }
2017 var_nodearraylist4 = var2;
2018 {
2019 var3 = parser_work__Parser__pop(var_p);
2020 }
2021 var_nodearraylist3 = var3;
2022 {
2023 var4 = parser_work__Parser__pop(var_p);
2024 }
2025 var_nodearraylist2 = var4;
2026 {
2027 var5 = parser_work__Parser__pop(var_p);
2028 }
2029 var_nodearraylist1 = var5;
2030 var_tkwassertnode2 = var_nodearraylist1;
2031 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
2032 cltype = type_nullable_parser_nodes__TKwassert.color;
2033 idtype = type_nullable_parser_nodes__TKwassert.id;
2034 if(var_tkwassertnode2 == NULL) {
2035 var6 = 1;
2036 } else {
2037 if(cltype >= var_tkwassertnode2->type->table_size) {
2038 var6 = 0;
2039 } else {
2040 var6 = var_tkwassertnode2->type->type_table[cltype] == idtype;
2041 }
2042 }
2043 if (unlikely(!var6)) {
2044 PRINT_ERROR("Runtime error: %s", "Assert failed");
2045 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7538);
2046 show_backtrace(1);
2047 }
2048 var_tidnode3 = var_nodearraylist2;
2049 /* <var_tidnode3:nullable Object> isa nullable TId */
2050 cltype8 = type_nullable_parser_nodes__TId.color;
2051 idtype9 = type_nullable_parser_nodes__TId.id;
2052 if(var_tidnode3 == NULL) {
2053 var7 = 1;
2054 } else {
2055 if(cltype8 >= var_tidnode3->type->table_size) {
2056 var7 = 0;
2057 } else {
2058 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
2059 }
2060 }
2061 if (unlikely(!var7)) {
2062 PRINT_ERROR("Runtime error: %s", "Assert failed");
2063 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7540);
2064 show_backtrace(1);
2065 }
2066 var_pexprnode4 = var_nodearraylist3;
2067 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2068 cltype11 = type_nullable_parser_nodes__AExpr.color;
2069 idtype12 = type_nullable_parser_nodes__AExpr.id;
2070 if(var_pexprnode4 == NULL) {
2071 var10 = 1;
2072 } else {
2073 if(cltype11 >= var_pexprnode4->type->table_size) {
2074 var10 = 0;
2075 } else {
2076 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
2077 }
2078 }
2079 if (unlikely(!var10)) {
2080 PRINT_ERROR("Runtime error: %s", "Assert failed");
2081 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7542);
2082 show_backtrace(1);
2083 }
2084 var_pexprnode5 = var_nodearraylist5;
2085 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2086 cltype14 = type_nullable_parser_nodes__AExpr.color;
2087 idtype15 = type_nullable_parser_nodes__AExpr.id;
2088 if(var_pexprnode5 == NULL) {
2089 var13 = 1;
2090 } else {
2091 if(cltype14 >= var_pexprnode5->type->table_size) {
2092 var13 = 0;
2093 } else {
2094 var13 = var_pexprnode5->type->type_table[cltype14] == idtype15;
2095 }
2096 }
2097 if (unlikely(!var13)) {
2098 PRINT_ERROR("Runtime error: %s", "Assert failed");
2099 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7544);
2100 show_backtrace(1);
2101 }
2102 var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
2103 {
2104 parser_prod__AAssertExpr__init_aassertexpr(var16, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_pexprnode5); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var16:AAssertExpr>*/
2105 }
2106 var_pexprnode1 = var16;
2107 var_node_list = var_pexprnode1;
2108 var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction265> */
2109 {
2110 var18 = parser_work__Parser__go_to(var_p, var17);
2111 }
2112 {
2113 parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2114 }
2115 RET_LABEL:;
2116 }
2117 /* method parser#ReduceAction265#action for (self: Object, Parser) */
2118 void VIRTUAL_parser__ReduceAction265__action(val* self, val* p0) {
2119 parser__ReduceAction265__action(self, p0); /* Direct call parser#ReduceAction265#action on <self:Object(ReduceAction265)>*/
2120 RET_LABEL:;
2121 }
2122 /* method parser#ReduceAction266#action for (self: ReduceAction266, Parser) */
2123 void parser__ReduceAction266__action(val* self, val* p0) {
2124 val* var_p /* var p: Parser */;
2125 val* var /* : null */;
2126 val* var_node_list /* var node_list: nullable Object */;
2127 val* var1 /* : nullable Object */;
2128 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2129 val* var2 /* : nullable Object */;
2130 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2131 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
2132 short int var3 /* : Bool */;
2133 int cltype;
2134 int idtype;
2135 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2136 short int var4 /* : Bool */;
2137 int cltype5;
2138 int idtype6;
2139 val* var7 /* : AAssertExpr */;
2140 val* var8 /* : null */;
2141 val* var9 /* : null */;
2142 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
2143 long var10 /* : Int */;
2144 long var11 /* : Int */;
2145 var_p = p0;
2146 var = NULL;
2147 var_node_list = var;
2148 {
2149 var1 = parser_work__Parser__pop(var_p);
2150 }
2151 var_nodearraylist2 = var1;
2152 {
2153 var2 = parser_work__Parser__pop(var_p);
2154 }
2155 var_nodearraylist1 = var2;
2156 var_tkwassertnode2 = var_nodearraylist1;
2157 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
2158 cltype = type_nullable_parser_nodes__TKwassert.color;
2159 idtype = type_nullable_parser_nodes__TKwassert.id;
2160 if(var_tkwassertnode2 == NULL) {
2161 var3 = 1;
2162 } else {
2163 if(cltype >= var_tkwassertnode2->type->table_size) {
2164 var3 = 0;
2165 } else {
2166 var3 = var_tkwassertnode2->type->type_table[cltype] == idtype;
2167 }
2168 }
2169 if (unlikely(!var3)) {
2170 PRINT_ERROR("Runtime error: %s", "Assert failed");
2171 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7563);
2172 show_backtrace(1);
2173 }
2174 var_pexprnode4 = var_nodearraylist2;
2175 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2176 cltype5 = type_nullable_parser_nodes__AExpr.color;
2177 idtype6 = type_nullable_parser_nodes__AExpr.id;
2178 if(var_pexprnode4 == NULL) {
2179 var4 = 1;
2180 } else {
2181 if(cltype5 >= var_pexprnode4->type->table_size) {
2182 var4 = 0;
2183 } else {
2184 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
2185 }
2186 }
2187 if (unlikely(!var4)) {
2188 PRINT_ERROR("Runtime error: %s", "Assert failed");
2189 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7565);
2190 show_backtrace(1);
2191 }
2192 var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
2193 var8 = NULL;
2194 var9 = NULL;
2195 {
2196 parser_prod__AAssertExpr__init_aassertexpr(var7, var_tkwassertnode2, var8, var_pexprnode4, var9); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var7:AAssertExpr>*/
2197 }
2198 var_pexprnode1 = var7;
2199 var_node_list = var_pexprnode1;
2200 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction266> */
2201 {
2202 var11 = parser_work__Parser__go_to(var_p, var10);
2203 }
2204 {
2205 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2206 }
2207 RET_LABEL:;
2208 }
2209 /* method parser#ReduceAction266#action for (self: Object, Parser) */
2210 void VIRTUAL_parser__ReduceAction266__action(val* self, val* p0) {
2211 parser__ReduceAction266__action(self, p0); /* Direct call parser#ReduceAction266#action on <self:Object(ReduceAction266)>*/
2212 RET_LABEL:;
2213 }
2214 /* method parser#ReduceAction267#action for (self: ReduceAction267, Parser) */
2215 void parser__ReduceAction267__action(val* self, val* p0) {
2216 val* var_p /* var p: Parser */;
2217 val* var /* : null */;
2218 val* var_node_list /* var node_list: nullable Object */;
2219 val* var1 /* : nullable Object */;
2220 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2221 val* var2 /* : nullable Object */;
2222 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2223 val* var3 /* : nullable Object */;
2224 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2225 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
2226 short int var4 /* : Bool */;
2227 int cltype;
2228 int idtype;
2229 val* var_tidnode3 /* var tidnode3: nullable Object */;
2230 short int var5 /* : Bool */;
2231 int cltype6;
2232 int idtype7;
2233 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2234 short int var8 /* : Bool */;
2235 int cltype9;
2236 int idtype10;
2237 val* var11 /* : AAssertExpr */;
2238 val* var12 /* : null */;
2239 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
2240 long var13 /* : Int */;
2241 long var14 /* : Int */;
2242 var_p = p0;
2243 var = NULL;
2244 var_node_list = var;
2245 {
2246 var1 = parser_work__Parser__pop(var_p);
2247 }
2248 var_nodearraylist3 = var1;
2249 {
2250 var2 = parser_work__Parser__pop(var_p);
2251 }
2252 var_nodearraylist2 = var2;
2253 {
2254 var3 = parser_work__Parser__pop(var_p);
2255 }
2256 var_nodearraylist1 = var3;
2257 var_tkwassertnode2 = var_nodearraylist1;
2258 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
2259 cltype = type_nullable_parser_nodes__TKwassert.color;
2260 idtype = type_nullable_parser_nodes__TKwassert.id;
2261 if(var_tkwassertnode2 == NULL) {
2262 var4 = 1;
2263 } else {
2264 if(cltype >= var_tkwassertnode2->type->table_size) {
2265 var4 = 0;
2266 } else {
2267 var4 = var_tkwassertnode2->type->type_table[cltype] == idtype;
2268 }
2269 }
2270 if (unlikely(!var4)) {
2271 PRINT_ERROR("Runtime error: %s", "Assert failed");
2272 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7585);
2273 show_backtrace(1);
2274 }
2275 var_tidnode3 = var_nodearraylist2;
2276 /* <var_tidnode3:nullable Object> isa nullable TId */
2277 cltype6 = type_nullable_parser_nodes__TId.color;
2278 idtype7 = type_nullable_parser_nodes__TId.id;
2279 if(var_tidnode3 == NULL) {
2280 var5 = 1;
2281 } else {
2282 if(cltype6 >= var_tidnode3->type->table_size) {
2283 var5 = 0;
2284 } else {
2285 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
2286 }
2287 }
2288 if (unlikely(!var5)) {
2289 PRINT_ERROR("Runtime error: %s", "Assert failed");
2290 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7587);
2291 show_backtrace(1);
2292 }
2293 var_pexprnode4 = var_nodearraylist3;
2294 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2295 cltype9 = type_nullable_parser_nodes__AExpr.color;
2296 idtype10 = type_nullable_parser_nodes__AExpr.id;
2297 if(var_pexprnode4 == NULL) {
2298 var8 = 1;
2299 } else {
2300 if(cltype9 >= var_pexprnode4->type->table_size) {
2301 var8 = 0;
2302 } else {
2303 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
2304 }
2305 }
2306 if (unlikely(!var8)) {
2307 PRINT_ERROR("Runtime error: %s", "Assert failed");
2308 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7589);
2309 show_backtrace(1);
2310 }
2311 var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
2312 var12 = NULL;
2313 {
2314 parser_prod__AAssertExpr__init_aassertexpr(var11, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var12); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <var11:AAssertExpr>*/
2315 }
2316 var_pexprnode1 = var11;
2317 var_node_list = var_pexprnode1;
2318 var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction267> */
2319 {
2320 var14 = parser_work__Parser__go_to(var_p, var13);
2321 }
2322 {
2323 parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2324 }
2325 RET_LABEL:;
2326 }
2327 /* method parser#ReduceAction267#action for (self: Object, Parser) */
2328 void VIRTUAL_parser__ReduceAction267__action(val* self, val* p0) {
2329 parser__ReduceAction267__action(self, p0); /* Direct call parser#ReduceAction267#action on <self:Object(ReduceAction267)>*/
2330 RET_LABEL:;
2331 }
2332 /* method parser#ReduceAction268#action for (self: ReduceAction268, Parser) */
2333 void parser__ReduceAction268__action(val* self, val* p0) {
2334 val* var_p /* var p: Parser */;
2335 val* var /* : null */;
2336 val* var_node_list /* var node_list: nullable Object */;
2337 val* var1 /* : nullable Object */;
2338 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2339 val* var2 /* : nullable Object */;
2340 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2341 val* var_tidnode1 /* var tidnode1: nullable Object */;
2342 long var3 /* : Int */;
2343 long var4 /* : Int */;
2344 var_p = p0;
2345 var = NULL;
2346 var_node_list = var;
2347 {
2348 var1 = parser_work__Parser__pop(var_p);
2349 }
2350 var_nodearraylist2 = var1;
2351 {
2352 var2 = parser_work__Parser__pop(var_p);
2353 }
2354 var_nodearraylist1 = var2;
2355 var_tidnode1 = var_nodearraylist1;
2356 var_node_list = var_tidnode1;
2357 var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction268> */
2358 {
2359 var4 = parser_work__Parser__go_to(var_p, var3);
2360 }
2361 {
2362 parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2363 }
2364 RET_LABEL:;
2365 }
2366 /* method parser#ReduceAction268#action for (self: Object, Parser) */
2367 void VIRTUAL_parser__ReduceAction268__action(val* self, val* p0) {
2368 parser__ReduceAction268__action(self, p0); /* Direct call parser#ReduceAction268#action on <self:Object(ReduceAction268)>*/
2369 RET_LABEL:;
2370 }
2371 /* method parser#ReduceAction270#action for (self: ReduceAction270, Parser) */
2372 void parser__ReduceAction270__action(val* self, val* p0) {
2373 val* var_p /* var p: Parser */;
2374 val* var /* : null */;
2375 val* var_node_list /* var node_list: nullable Object */;
2376 val* var1 /* : nullable Object */;
2377 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2378 val* var2 /* : nullable Object */;
2379 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2380 val* var3 /* : nullable Object */;
2381 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2382 val* var4 /* : nullable Object */;
2383 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2384 val* var5 /* : nullable Object */;
2385 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2386 val* var6 /* : nullable Object */;
2387 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2388 val* var7 /* : nullable Object */;
2389 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2390 val* var8 /* : nullable Object */;
2391 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2392 val* var9 /* : nullable Object */;
2393 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2394 val* var10 /* : nullable Object */;
2395 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2396 val* var11 /* : nullable Object */;
2397 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2398 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
2399 short int var12 /* : Bool */;
2400 int cltype;
2401 int idtype;
2402 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2403 short int var13 /* : Bool */;
2404 int cltype14;
2405 int idtype15;
2406 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
2407 short int var16 /* : Bool */;
2408 int cltype17;
2409 int idtype18;
2410 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2411 short int var19 /* : Bool */;
2412 int cltype20;
2413 int idtype21;
2414 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
2415 short int var22 /* : Bool */;
2416 int cltype23;
2417 int idtype24;
2418 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
2419 short int var25 /* : Bool */;
2420 int cltype26;
2421 int idtype27;
2422 val* var28 /* : AIfexprExpr */;
2423 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
2424 long var29 /* : Int */;
2425 long var30 /* : Int */;
2426 var_p = p0;
2427 var = NULL;
2428 var_node_list = var;
2429 {
2430 var1 = parser_work__Parser__pop(var_p);
2431 }
2432 var_nodearraylist11 = var1;
2433 {
2434 var2 = parser_work__Parser__pop(var_p);
2435 }
2436 var_nodearraylist10 = var2;
2437 {
2438 var3 = parser_work__Parser__pop(var_p);
2439 }
2440 var_nodearraylist9 = var3;
2441 {
2442 var4 = parser_work__Parser__pop(var_p);
2443 }
2444 var_nodearraylist8 = var4;
2445 {
2446 var5 = parser_work__Parser__pop(var_p);
2447 }
2448 var_nodearraylist7 = var5;
2449 {
2450 var6 = parser_work__Parser__pop(var_p);
2451 }
2452 var_nodearraylist6 = var6;
2453 {
2454 var7 = parser_work__Parser__pop(var_p);
2455 }
2456 var_nodearraylist5 = var7;
2457 {
2458 var8 = parser_work__Parser__pop(var_p);
2459 }
2460 var_nodearraylist4 = var8;
2461 {
2462 var9 = parser_work__Parser__pop(var_p);
2463 }
2464 var_nodearraylist3 = var9;
2465 {
2466 var10 = parser_work__Parser__pop(var_p);
2467 }
2468 var_nodearraylist2 = var10;
2469 {
2470 var11 = parser_work__Parser__pop(var_p);
2471 }
2472 var_nodearraylist1 = var11;
2473 var_tkwifnode2 = var_nodearraylist1;
2474 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
2475 cltype = type_nullable_parser_nodes__TKwif.color;
2476 idtype = type_nullable_parser_nodes__TKwif.id;
2477 if(var_tkwifnode2 == NULL) {
2478 var12 = 1;
2479 } else {
2480 if(cltype >= var_tkwifnode2->type->table_size) {
2481 var12 = 0;
2482 } else {
2483 var12 = var_tkwifnode2->type->type_table[cltype] == idtype;
2484 }
2485 }
2486 if (unlikely(!var12)) {
2487 PRINT_ERROR("Runtime error: %s", "Assert failed");
2488 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7629);
2489 show_backtrace(1);
2490 }
2491 var_pexprnode3 = var_nodearraylist3;
2492 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2493 cltype14 = type_nullable_parser_nodes__AExpr.color;
2494 idtype15 = type_nullable_parser_nodes__AExpr.id;
2495 if(var_pexprnode3 == NULL) {
2496 var13 = 1;
2497 } else {
2498 if(cltype14 >= var_pexprnode3->type->table_size) {
2499 var13 = 0;
2500 } else {
2501 var13 = var_pexprnode3->type->type_table[cltype14] == idtype15;
2502 }
2503 }
2504 if (unlikely(!var13)) {
2505 PRINT_ERROR("Runtime error: %s", "Assert failed");
2506 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7631);
2507 show_backtrace(1);
2508 }
2509 var_tkwthennode4 = var_nodearraylist5;
2510 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
2511 cltype17 = type_nullable_parser_nodes__TKwthen.color;
2512 idtype18 = type_nullable_parser_nodes__TKwthen.id;
2513 if(var_tkwthennode4 == NULL) {
2514 var16 = 1;
2515 } else {
2516 if(cltype17 >= var_tkwthennode4->type->table_size) {
2517 var16 = 0;
2518 } else {
2519 var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18;
2520 }
2521 }
2522 if (unlikely(!var16)) {
2523 PRINT_ERROR("Runtime error: %s", "Assert failed");
2524 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7633);
2525 show_backtrace(1);
2526 }
2527 var_pexprnode5 = var_nodearraylist7;
2528 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2529 cltype20 = type_nullable_parser_nodes__AExpr.color;
2530 idtype21 = type_nullable_parser_nodes__AExpr.id;
2531 if(var_pexprnode5 == NULL) {
2532 var19 = 1;
2533 } else {
2534 if(cltype20 >= var_pexprnode5->type->table_size) {
2535 var19 = 0;
2536 } else {
2537 var19 = var_pexprnode5->type->type_table[cltype20] == idtype21;
2538 }
2539 }
2540 if (unlikely(!var19)) {
2541 PRINT_ERROR("Runtime error: %s", "Assert failed");
2542 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7635);
2543 show_backtrace(1);
2544 }
2545 var_tkwelsenode6 = var_nodearraylist9;
2546 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
2547 cltype23 = type_nullable_parser_nodes__TKwelse.color;
2548 idtype24 = type_nullable_parser_nodes__TKwelse.id;
2549 if(var_tkwelsenode6 == NULL) {
2550 var22 = 1;
2551 } else {
2552 if(cltype23 >= var_tkwelsenode6->type->table_size) {
2553 var22 = 0;
2554 } else {
2555 var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24;
2556 }
2557 }
2558 if (unlikely(!var22)) {
2559 PRINT_ERROR("Runtime error: %s", "Assert failed");
2560 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7637);
2561 show_backtrace(1);
2562 }
2563 var_pexprnode7 = var_nodearraylist11;
2564 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
2565 cltype26 = type_nullable_parser_nodes__AExpr.color;
2566 idtype27 = type_nullable_parser_nodes__AExpr.id;
2567 if(var_pexprnode7 == NULL) {
2568 var25 = 1;
2569 } else {
2570 if(cltype26 >= var_pexprnode7->type->table_size) {
2571 var25 = 0;
2572 } else {
2573 var25 = var_pexprnode7->type->type_table[cltype26] == idtype27;
2574 }
2575 }
2576 if (unlikely(!var25)) {
2577 PRINT_ERROR("Runtime error: %s", "Assert failed");
2578 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7639);
2579 show_backtrace(1);
2580 }
2581 var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr);
2582 {
2583 parser_prod__AIfexprExpr__init_aifexprexpr(var28, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod#AIfexprExpr#init_aifexprexpr on <var28:AIfexprExpr>*/
2584 }
2585 var_pexprnode1 = var28;
2586 var_node_list = var_pexprnode1;
2587 var29 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction270> */
2588 {
2589 var30 = parser_work__Parser__go_to(var_p, var29);
2590 }
2591 {
2592 parser_work__Parser__push(var_p, var30, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2593 }
2594 RET_LABEL:;
2595 }
2596 /* method parser#ReduceAction270#action for (self: Object, Parser) */
2597 void VIRTUAL_parser__ReduceAction270__action(val* self, val* p0) {
2598 parser__ReduceAction270__action(self, p0); /* Direct call parser#ReduceAction270#action on <self:Object(ReduceAction270)>*/
2599 RET_LABEL:;
2600 }
2601 /* method parser#ReduceAction272#action for (self: ReduceAction272, Parser) */
2602 void parser__ReduceAction272__action(val* self, val* p0) {
2603 val* var_p /* var p: Parser */;
2604 val* var /* : null */;
2605 val* var_node_list /* var node_list: nullable Object */;
2606 val* var1 /* : nullable Object */;
2607 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2608 val* var2 /* : nullable Object */;
2609 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2610 val* var3 /* : nullable Object */;
2611 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2612 val* var4 /* : nullable Object */;
2613 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2614 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2615 short int var5 /* : Bool */;
2616 int cltype;
2617 int idtype;
2618 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2619 short int var6 /* : Bool */;
2620 int cltype7;
2621 int idtype8;
2622 val* var9 /* : AOrExpr */;
2623 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
2624 long var10 /* : Int */;
2625 long var11 /* : Int */;
2626 var_p = p0;
2627 var = NULL;
2628 var_node_list = var;
2629 {
2630 var1 = parser_work__Parser__pop(var_p);
2631 }
2632 var_nodearraylist4 = var1;
2633 {
2634 var2 = parser_work__Parser__pop(var_p);
2635 }
2636 var_nodearraylist3 = var2;
2637 {
2638 var3 = parser_work__Parser__pop(var_p);
2639 }
2640 var_nodearraylist2 = var3;
2641 {
2642 var4 = parser_work__Parser__pop(var_p);
2643 }
2644 var_nodearraylist1 = var4;
2645 var_pexprnode2 = var_nodearraylist1;
2646 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2647 cltype = type_nullable_parser_nodes__AExpr.color;
2648 idtype = type_nullable_parser_nodes__AExpr.id;
2649 if(var_pexprnode2 == NULL) {
2650 var5 = 1;
2651 } else {
2652 if(cltype >= var_pexprnode2->type->table_size) {
2653 var5 = 0;
2654 } else {
2655 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2656 }
2657 }
2658 if (unlikely(!var5)) {
2659 PRINT_ERROR("Runtime error: %s", "Assert failed");
2660 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7662);
2661 show_backtrace(1);
2662 }
2663 var_pexprnode3 = var_nodearraylist4;
2664 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2665 cltype7 = type_nullable_parser_nodes__AExpr.color;
2666 idtype8 = type_nullable_parser_nodes__AExpr.id;
2667 if(var_pexprnode3 == NULL) {
2668 var6 = 1;
2669 } else {
2670 if(cltype7 >= var_pexprnode3->type->table_size) {
2671 var6 = 0;
2672 } else {
2673 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2674 }
2675 }
2676 if (unlikely(!var6)) {
2677 PRINT_ERROR("Runtime error: %s", "Assert failed");
2678 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7664);
2679 show_backtrace(1);
2680 }
2681 var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr);
2682 {
2683 parser_prod__AOrExpr__init_aorexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AOrExpr#init_aorexpr on <var9:AOrExpr>*/
2684 }
2685 var_pexprnode1 = var9;
2686 var_node_list = var_pexprnode1;
2687 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction272> */
2688 {
2689 var11 = parser_work__Parser__go_to(var_p, var10);
2690 }
2691 {
2692 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2693 }
2694 RET_LABEL:;
2695 }
2696 /* method parser#ReduceAction272#action for (self: Object, Parser) */
2697 void VIRTUAL_parser__ReduceAction272__action(val* self, val* p0) {
2698 parser__ReduceAction272__action(self, p0); /* Direct call parser#ReduceAction272#action on <self:Object(ReduceAction272)>*/
2699 RET_LABEL:;
2700 }
2701 /* method parser#ReduceAction273#action for (self: ReduceAction273, Parser) */
2702 void parser__ReduceAction273__action(val* self, val* p0) {
2703 val* var_p /* var p: Parser */;
2704 val* var /* : null */;
2705 val* var_node_list /* var node_list: nullable Object */;
2706 val* var1 /* : nullable Object */;
2707 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2708 val* var2 /* : nullable Object */;
2709 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2710 val* var3 /* : nullable Object */;
2711 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2712 val* var4 /* : nullable Object */;
2713 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2714 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2715 short int var5 /* : Bool */;
2716 int cltype;
2717 int idtype;
2718 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2719 short int var6 /* : Bool */;
2720 int cltype7;
2721 int idtype8;
2722 val* var9 /* : AAndExpr */;
2723 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
2724 long var10 /* : Int */;
2725 long var11 /* : Int */;
2726 var_p = p0;
2727 var = NULL;
2728 var_node_list = var;
2729 {
2730 var1 = parser_work__Parser__pop(var_p);
2731 }
2732 var_nodearraylist4 = var1;
2733 {
2734 var2 = parser_work__Parser__pop(var_p);
2735 }
2736 var_nodearraylist3 = var2;
2737 {
2738 var3 = parser_work__Parser__pop(var_p);
2739 }
2740 var_nodearraylist2 = var3;
2741 {
2742 var4 = parser_work__Parser__pop(var_p);
2743 }
2744 var_nodearraylist1 = var4;
2745 var_pexprnode2 = var_nodearraylist1;
2746 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2747 cltype = type_nullable_parser_nodes__AExpr.color;
2748 idtype = type_nullable_parser_nodes__AExpr.id;
2749 if(var_pexprnode2 == NULL) {
2750 var5 = 1;
2751 } else {
2752 if(cltype >= var_pexprnode2->type->table_size) {
2753 var5 = 0;
2754 } else {
2755 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2756 }
2757 }
2758 if (unlikely(!var5)) {
2759 PRINT_ERROR("Runtime error: %s", "Assert failed");
2760 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7683);
2761 show_backtrace(1);
2762 }
2763 var_pexprnode3 = var_nodearraylist4;
2764 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2765 cltype7 = type_nullable_parser_nodes__AExpr.color;
2766 idtype8 = type_nullable_parser_nodes__AExpr.id;
2767 if(var_pexprnode3 == NULL) {
2768 var6 = 1;
2769 } else {
2770 if(cltype7 >= var_pexprnode3->type->table_size) {
2771 var6 = 0;
2772 } else {
2773 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2774 }
2775 }
2776 if (unlikely(!var6)) {
2777 PRINT_ERROR("Runtime error: %s", "Assert failed");
2778 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7685);
2779 show_backtrace(1);
2780 }
2781 var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr);
2782 {
2783 parser_prod__AAndExpr__init_aandexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AAndExpr#init_aandexpr on <var9:AAndExpr>*/
2784 }
2785 var_pexprnode1 = var9;
2786 var_node_list = var_pexprnode1;
2787 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction273> */
2788 {
2789 var11 = parser_work__Parser__go_to(var_p, var10);
2790 }
2791 {
2792 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2793 }
2794 RET_LABEL:;
2795 }
2796 /* method parser#ReduceAction273#action for (self: Object, Parser) */
2797 void VIRTUAL_parser__ReduceAction273__action(val* self, val* p0) {
2798 parser__ReduceAction273__action(self, p0); /* Direct call parser#ReduceAction273#action on <self:Object(ReduceAction273)>*/
2799 RET_LABEL:;
2800 }
2801 /* method parser#ReduceAction274#action for (self: ReduceAction274, Parser) */
2802 void parser__ReduceAction274__action(val* self, val* p0) {
2803 val* var_p /* var p: Parser */;
2804 val* var /* : null */;
2805 val* var_node_list /* var node_list: nullable Object */;
2806 val* var1 /* : nullable Object */;
2807 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2808 val* var2 /* : nullable Object */;
2809 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2810 val* var3 /* : nullable Object */;
2811 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2812 val* var4 /* : nullable Object */;
2813 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2814 val* var5 /* : nullable Object */;
2815 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2816 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2817 short int var6 /* : Bool */;
2818 int cltype;
2819 int idtype;
2820 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2821 short int var7 /* : Bool */;
2822 int cltype8;
2823 int idtype9;
2824 val* var10 /* : AOrElseExpr */;
2825 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
2826 long var11 /* : Int */;
2827 long var12 /* : Int */;
2828 var_p = p0;
2829 var = NULL;
2830 var_node_list = var;
2831 {
2832 var1 = parser_work__Parser__pop(var_p);
2833 }
2834 var_nodearraylist5 = var1;
2835 {
2836 var2 = parser_work__Parser__pop(var_p);
2837 }
2838 var_nodearraylist4 = var2;
2839 {
2840 var3 = parser_work__Parser__pop(var_p);
2841 }
2842 var_nodearraylist3 = var3;
2843 {
2844 var4 = parser_work__Parser__pop(var_p);
2845 }
2846 var_nodearraylist2 = var4;
2847 {
2848 var5 = parser_work__Parser__pop(var_p);
2849 }
2850 var_nodearraylist1 = var5;
2851 var_pexprnode2 = var_nodearraylist1;
2852 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2853 cltype = type_nullable_parser_nodes__AExpr.color;
2854 idtype = type_nullable_parser_nodes__AExpr.id;
2855 if(var_pexprnode2 == NULL) {
2856 var6 = 1;
2857 } else {
2858 if(cltype >= var_pexprnode2->type->table_size) {
2859 var6 = 0;
2860 } else {
2861 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
2862 }
2863 }
2864 if (unlikely(!var6)) {
2865 PRINT_ERROR("Runtime error: %s", "Assert failed");
2866 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7705);
2867 show_backtrace(1);
2868 }
2869 var_pexprnode3 = var_nodearraylist5;
2870 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2871 cltype8 = type_nullable_parser_nodes__AExpr.color;
2872 idtype9 = type_nullable_parser_nodes__AExpr.id;
2873 if(var_pexprnode3 == NULL) {
2874 var7 = 1;
2875 } else {
2876 if(cltype8 >= var_pexprnode3->type->table_size) {
2877 var7 = 0;
2878 } else {
2879 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
2880 }
2881 }
2882 if (unlikely(!var7)) {
2883 PRINT_ERROR("Runtime error: %s", "Assert failed");
2884 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7707);
2885 show_backtrace(1);
2886 }
2887 var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr);
2888 {
2889 parser_prod__AOrElseExpr__init_aorelseexpr(var10, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AOrElseExpr#init_aorelseexpr on <var10:AOrElseExpr>*/
2890 }
2891 var_pexprnode1 = var10;
2892 var_node_list = var_pexprnode1;
2893 var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction274> */
2894 {
2895 var12 = parser_work__Parser__go_to(var_p, var11);
2896 }
2897 {
2898 parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2899 }
2900 RET_LABEL:;
2901 }
2902 /* method parser#ReduceAction274#action for (self: Object, Parser) */
2903 void VIRTUAL_parser__ReduceAction274__action(val* self, val* p0) {
2904 parser__ReduceAction274__action(self, p0); /* Direct call parser#ReduceAction274#action on <self:Object(ReduceAction274)>*/
2905 RET_LABEL:;
2906 }
2907 /* method parser#ReduceAction275#action for (self: ReduceAction275, Parser) */
2908 void parser__ReduceAction275__action(val* self, val* p0) {
2909 val* var_p /* var p: Parser */;
2910 val* var /* : null */;
2911 val* var_node_list /* var node_list: nullable Object */;
2912 val* var1 /* : nullable Object */;
2913 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2914 val* var2 /* : nullable Object */;
2915 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2916 val* var3 /* : nullable Object */;
2917 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2918 val* var4 /* : nullable Object */;
2919 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2920 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2921 short int var5 /* : Bool */;
2922 int cltype;
2923 int idtype;
2924 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2925 short int var6 /* : Bool */;
2926 int cltype7;
2927 int idtype8;
2928 val* var9 /* : AImpliesExpr */;
2929 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
2930 long var10 /* : Int */;
2931 long var11 /* : Int */;
2932 var_p = p0;
2933 var = NULL;
2934 var_node_list = var;
2935 {
2936 var1 = parser_work__Parser__pop(var_p);
2937 }
2938 var_nodearraylist4 = var1;
2939 {
2940 var2 = parser_work__Parser__pop(var_p);
2941 }
2942 var_nodearraylist3 = var2;
2943 {
2944 var3 = parser_work__Parser__pop(var_p);
2945 }
2946 var_nodearraylist2 = var3;
2947 {
2948 var4 = parser_work__Parser__pop(var_p);
2949 }
2950 var_nodearraylist1 = var4;
2951 var_pexprnode2 = var_nodearraylist1;
2952 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2953 cltype = type_nullable_parser_nodes__AExpr.color;
2954 idtype = type_nullable_parser_nodes__AExpr.id;
2955 if(var_pexprnode2 == NULL) {
2956 var5 = 1;
2957 } else {
2958 if(cltype >= var_pexprnode2->type->table_size) {
2959 var5 = 0;
2960 } else {
2961 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2962 }
2963 }
2964 if (unlikely(!var5)) {
2965 PRINT_ERROR("Runtime error: %s", "Assert failed");
2966 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7726);
2967 show_backtrace(1);
2968 }
2969 var_pexprnode3 = var_nodearraylist4;
2970 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2971 cltype7 = type_nullable_parser_nodes__AExpr.color;
2972 idtype8 = type_nullable_parser_nodes__AExpr.id;
2973 if(var_pexprnode3 == NULL) {
2974 var6 = 1;
2975 } else {
2976 if(cltype7 >= var_pexprnode3->type->table_size) {
2977 var6 = 0;
2978 } else {
2979 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2980 }
2981 }
2982 if (unlikely(!var6)) {
2983 PRINT_ERROR("Runtime error: %s", "Assert failed");
2984 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7728);
2985 show_backtrace(1);
2986 }
2987 var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr);
2988 {
2989 parser_prod__AImpliesExpr__init_aimpliesexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AImpliesExpr#init_aimpliesexpr on <var9:AImpliesExpr>*/
2990 }
2991 var_pexprnode1 = var9;
2992 var_node_list = var_pexprnode1;
2993 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction275> */
2994 {
2995 var11 = parser_work__Parser__go_to(var_p, var10);
2996 }
2997 {
2998 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2999 }
3000 RET_LABEL:;
3001 }
3002 /* method parser#ReduceAction275#action for (self: Object, Parser) */
3003 void VIRTUAL_parser__ReduceAction275__action(val* self, val* p0) {
3004 parser__ReduceAction275__action(self, p0); /* Direct call parser#ReduceAction275#action on <self:Object(ReduceAction275)>*/
3005 RET_LABEL:;
3006 }
3007 /* method parser#ReduceAction277#action for (self: ReduceAction277, Parser) */
3008 void parser__ReduceAction277__action(val* self, val* p0) {
3009 val* var_p /* var p: Parser */;
3010 val* var /* : null */;
3011 val* var_node_list /* var node_list: nullable Object */;
3012 val* var1 /* : nullable Object */;
3013 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3014 val* var2 /* : nullable Object */;
3015 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3016 val* var3 /* : nullable Object */;
3017 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3018 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
3019 short int var4 /* : Bool */;
3020 int cltype;
3021 int idtype;
3022 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3023 short int var5 /* : Bool */;
3024 int cltype6;
3025 int idtype7;
3026 val* var8 /* : ANotExpr */;
3027 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
3028 long var9 /* : Int */;
3029 long var10 /* : Int */;
3030 var_p = p0;
3031 var = NULL;
3032 var_node_list = var;
3033 {
3034 var1 = parser_work__Parser__pop(var_p);
3035 }
3036 var_nodearraylist3 = var1;
3037 {
3038 var2 = parser_work__Parser__pop(var_p);
3039 }
3040 var_nodearraylist2 = var2;
3041 {
3042 var3 = parser_work__Parser__pop(var_p);
3043 }
3044 var_nodearraylist1 = var3;
3045 var_tkwnotnode2 = var_nodearraylist1;
3046 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
3047 cltype = type_nullable_parser_nodes__TKwnot.color;
3048 idtype = type_nullable_parser_nodes__TKwnot.id;
3049 if(var_tkwnotnode2 == NULL) {
3050 var4 = 1;
3051 } else {
3052 if(cltype >= var_tkwnotnode2->type->table_size) {
3053 var4 = 0;
3054 } else {
3055 var4 = var_tkwnotnode2->type->type_table[cltype] == idtype;
3056 }
3057 }
3058 if (unlikely(!var4)) {
3059 PRINT_ERROR("Runtime error: %s", "Assert failed");
3060 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7746);
3061 show_backtrace(1);
3062 }
3063 var_pexprnode3 = var_nodearraylist3;
3064 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3065 cltype6 = type_nullable_parser_nodes__AExpr.color;
3066 idtype7 = type_nullable_parser_nodes__AExpr.id;
3067 if(var_pexprnode3 == NULL) {
3068 var5 = 1;
3069 } else {
3070 if(cltype6 >= var_pexprnode3->type->table_size) {
3071 var5 = 0;
3072 } else {
3073 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
3074 }
3075 }
3076 if (unlikely(!var5)) {
3077 PRINT_ERROR("Runtime error: %s", "Assert failed");
3078 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7748);
3079 show_backtrace(1);
3080 }
3081 var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr);
3082 {
3083 parser_prod__ANotExpr__init_anotexpr(var8, var_tkwnotnode2, var_pexprnode3); /* Direct call parser_prod#ANotExpr#init_anotexpr on <var8:ANotExpr>*/
3084 }
3085 var_pexprnode1 = var8;
3086 var_node_list = var_pexprnode1;
3087 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction277> */
3088 {
3089 var10 = parser_work__Parser__go_to(var_p, var9);
3090 }
3091 {
3092 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3093 }
3094 RET_LABEL:;
3095 }
3096 /* method parser#ReduceAction277#action for (self: Object, Parser) */
3097 void VIRTUAL_parser__ReduceAction277__action(val* self, val* p0) {
3098 parser__ReduceAction277__action(self, p0); /* Direct call parser#ReduceAction277#action on <self:Object(ReduceAction277)>*/
3099 RET_LABEL:;
3100 }
3101 /* method parser#ReduceAction279#action for (self: ReduceAction279, Parser) */
3102 void parser__ReduceAction279__action(val* self, val* p0) {
3103 val* var_p /* var p: Parser */;
3104 val* var /* : null */;
3105 val* var_node_list /* var node_list: nullable Object */;
3106 val* var1 /* : nullable Object */;
3107 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3108 val* var2 /* : nullable Object */;
3109 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3110 val* var3 /* : nullable Object */;
3111 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3112 val* var4 /* : nullable Object */;
3113 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3114 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3115 short int var5 /* : Bool */;
3116 int cltype;
3117 int idtype;
3118 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3119 short int var6 /* : Bool */;
3120 int cltype7;
3121 int idtype8;
3122 val* var9 /* : AEqExpr */;
3123 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
3124 long var10 /* : Int */;
3125 long var11 /* : Int */;
3126 var_p = p0;
3127 var = NULL;
3128 var_node_list = var;
3129 {
3130 var1 = parser_work__Parser__pop(var_p);
3131 }
3132 var_nodearraylist4 = var1;
3133 {
3134 var2 = parser_work__Parser__pop(var_p);
3135 }
3136 var_nodearraylist3 = var2;
3137 {
3138 var3 = parser_work__Parser__pop(var_p);
3139 }
3140 var_nodearraylist2 = var3;
3141 {
3142 var4 = parser_work__Parser__pop(var_p);
3143 }
3144 var_nodearraylist1 = var4;
3145 var_pexprnode2 = var_nodearraylist1;
3146 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3147 cltype = type_nullable_parser_nodes__AExpr.color;
3148 idtype = type_nullable_parser_nodes__AExpr.id;
3149 if(var_pexprnode2 == NULL) {
3150 var5 = 1;
3151 } else {
3152 if(cltype >= var_pexprnode2->type->table_size) {
3153 var5 = 0;
3154 } else {
3155 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3156 }
3157 }
3158 if (unlikely(!var5)) {
3159 PRINT_ERROR("Runtime error: %s", "Assert failed");
3160 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7767);
3161 show_backtrace(1);
3162 }
3163 var_pexprnode3 = var_nodearraylist4;
3164 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3165 cltype7 = type_nullable_parser_nodes__AExpr.color;
3166 idtype8 = type_nullable_parser_nodes__AExpr.id;
3167 if(var_pexprnode3 == NULL) {
3168 var6 = 1;
3169 } else {
3170 if(cltype7 >= var_pexprnode3->type->table_size) {
3171 var6 = 0;
3172 } else {
3173 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3174 }
3175 }
3176 if (unlikely(!var6)) {
3177 PRINT_ERROR("Runtime error: %s", "Assert failed");
3178 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7769);
3179 show_backtrace(1);
3180 }
3181 var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr);
3182 {
3183 parser_prod__AEqExpr__init_aeqexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AEqExpr#init_aeqexpr on <var9:AEqExpr>*/
3184 }
3185 var_pexprnode1 = var9;
3186 var_node_list = var_pexprnode1;
3187 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction279> */
3188 {
3189 var11 = parser_work__Parser__go_to(var_p, var10);
3190 }
3191 {
3192 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3193 }
3194 RET_LABEL:;
3195 }
3196 /* method parser#ReduceAction279#action for (self: Object, Parser) */
3197 void VIRTUAL_parser__ReduceAction279__action(val* self, val* p0) {
3198 parser__ReduceAction279__action(self, p0); /* Direct call parser#ReduceAction279#action on <self:Object(ReduceAction279)>*/
3199 RET_LABEL:;
3200 }
3201 /* method parser#ReduceAction280#action for (self: ReduceAction280, Parser) */
3202 void parser__ReduceAction280__action(val* self, val* p0) {
3203 val* var_p /* var p: Parser */;
3204 val* var /* : null */;
3205 val* var_node_list /* var node_list: nullable Object */;
3206 val* var1 /* : nullable Object */;
3207 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3208 val* var2 /* : nullable Object */;
3209 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3210 val* var3 /* : nullable Object */;
3211 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3212 val* var4 /* : nullable Object */;
3213 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3214 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3215 short int var5 /* : Bool */;
3216 int cltype;
3217 int idtype;
3218 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3219 short int var6 /* : Bool */;
3220 int cltype7;
3221 int idtype8;
3222 val* var9 /* : ANeExpr */;
3223 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
3224 long var10 /* : Int */;
3225 long var11 /* : Int */;
3226 var_p = p0;
3227 var = NULL;
3228 var_node_list = var;
3229 {
3230 var1 = parser_work__Parser__pop(var_p);
3231 }
3232 var_nodearraylist4 = var1;
3233 {
3234 var2 = parser_work__Parser__pop(var_p);
3235 }
3236 var_nodearraylist3 = var2;
3237 {
3238 var3 = parser_work__Parser__pop(var_p);
3239 }
3240 var_nodearraylist2 = var3;
3241 {
3242 var4 = parser_work__Parser__pop(var_p);
3243 }
3244 var_nodearraylist1 = var4;
3245 var_pexprnode2 = var_nodearraylist1;
3246 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3247 cltype = type_nullable_parser_nodes__AExpr.color;
3248 idtype = type_nullable_parser_nodes__AExpr.id;
3249 if(var_pexprnode2 == NULL) {
3250 var5 = 1;
3251 } else {
3252 if(cltype >= var_pexprnode2->type->table_size) {
3253 var5 = 0;
3254 } else {
3255 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3256 }
3257 }
3258 if (unlikely(!var5)) {
3259 PRINT_ERROR("Runtime error: %s", "Assert failed");
3260 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7788);
3261 show_backtrace(1);
3262 }
3263 var_pexprnode3 = var_nodearraylist4;
3264 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3265 cltype7 = type_nullable_parser_nodes__AExpr.color;
3266 idtype8 = type_nullable_parser_nodes__AExpr.id;
3267 if(var_pexprnode3 == NULL) {
3268 var6 = 1;
3269 } else {
3270 if(cltype7 >= var_pexprnode3->type->table_size) {
3271 var6 = 0;
3272 } else {
3273 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3274 }
3275 }
3276 if (unlikely(!var6)) {
3277 PRINT_ERROR("Runtime error: %s", "Assert failed");
3278 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7790);
3279 show_backtrace(1);
3280 }
3281 var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr);
3282 {
3283 parser_prod__ANeExpr__init_aneexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#ANeExpr#init_aneexpr on <var9:ANeExpr>*/
3284 }
3285 var_pexprnode1 = var9;
3286 var_node_list = var_pexprnode1;
3287 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction280> */
3288 {
3289 var11 = parser_work__Parser__go_to(var_p, var10);
3290 }
3291 {
3292 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3293 }
3294 RET_LABEL:;
3295 }
3296 /* method parser#ReduceAction280#action for (self: Object, Parser) */
3297 void VIRTUAL_parser__ReduceAction280__action(val* self, val* p0) {
3298 parser__ReduceAction280__action(self, p0); /* Direct call parser#ReduceAction280#action on <self:Object(ReduceAction280)>*/
3299 RET_LABEL:;
3300 }
3301 /* method parser#ReduceAction281#action for (self: ReduceAction281, Parser) */
3302 void parser__ReduceAction281__action(val* self, val* p0) {
3303 val* var_p /* var p: Parser */;
3304 val* var /* : null */;
3305 val* var_node_list /* var node_list: nullable Object */;
3306 val* var1 /* : nullable Object */;
3307 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3308 val* var2 /* : nullable Object */;
3309 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3310 val* var3 /* : nullable Object */;
3311 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3312 val* var4 /* : nullable Object */;
3313 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3314 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3315 short int var5 /* : Bool */;
3316 int cltype;
3317 int idtype;
3318 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3319 short int var6 /* : Bool */;
3320 int cltype7;
3321 int idtype8;
3322 val* var9 /* : ALtExpr */;
3323 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
3324 long var10 /* : Int */;
3325 long var11 /* : Int */;
3326 var_p = p0;
3327 var = NULL;
3328 var_node_list = var;
3329 {
3330 var1 = parser_work__Parser__pop(var_p);
3331 }
3332 var_nodearraylist4 = var1;
3333 {
3334 var2 = parser_work__Parser__pop(var_p);
3335 }
3336 var_nodearraylist3 = var2;
3337 {
3338 var3 = parser_work__Parser__pop(var_p);
3339 }
3340 var_nodearraylist2 = var3;
3341 {
3342 var4 = parser_work__Parser__pop(var_p);
3343 }
3344 var_nodearraylist1 = var4;
3345 var_pexprnode2 = var_nodearraylist1;
3346 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3347 cltype = type_nullable_parser_nodes__AExpr.color;
3348 idtype = type_nullable_parser_nodes__AExpr.id;
3349 if(var_pexprnode2 == NULL) {
3350 var5 = 1;
3351 } else {
3352 if(cltype >= var_pexprnode2->type->table_size) {
3353 var5 = 0;
3354 } else {
3355 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3356 }
3357 }
3358 if (unlikely(!var5)) {
3359 PRINT_ERROR("Runtime error: %s", "Assert failed");
3360 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7809);
3361 show_backtrace(1);
3362 }
3363 var_pexprnode3 = var_nodearraylist4;
3364 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3365 cltype7 = type_nullable_parser_nodes__AExpr.color;
3366 idtype8 = type_nullable_parser_nodes__AExpr.id;
3367 if(var_pexprnode3 == NULL) {
3368 var6 = 1;
3369 } else {
3370 if(cltype7 >= var_pexprnode3->type->table_size) {
3371 var6 = 0;
3372 } else {
3373 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3374 }
3375 }
3376 if (unlikely(!var6)) {
3377 PRINT_ERROR("Runtime error: %s", "Assert failed");
3378 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7811);
3379 show_backtrace(1);
3380 }
3381 var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr);
3382 {
3383 parser_prod__ALtExpr__init_altexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#ALtExpr#init_altexpr on <var9:ALtExpr>*/
3384 }
3385 var_pexprnode1 = var9;
3386 var_node_list = var_pexprnode1;
3387 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction281> */
3388 {
3389 var11 = parser_work__Parser__go_to(var_p, var10);
3390 }
3391 {
3392 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3393 }
3394 RET_LABEL:;
3395 }
3396 /* method parser#ReduceAction281#action for (self: Object, Parser) */
3397 void VIRTUAL_parser__ReduceAction281__action(val* self, val* p0) {
3398 parser__ReduceAction281__action(self, p0); /* Direct call parser#ReduceAction281#action on <self:Object(ReduceAction281)>*/
3399 RET_LABEL:;
3400 }
3401 /* method parser#ReduceAction282#action for (self: ReduceAction282, Parser) */
3402 void parser__ReduceAction282__action(val* self, val* p0) {
3403 val* var_p /* var p: Parser */;
3404 val* var /* : null */;
3405 val* var_node_list /* var node_list: nullable Object */;
3406 val* var1 /* : nullable Object */;
3407 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3408 val* var2 /* : nullable Object */;
3409 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3410 val* var3 /* : nullable Object */;
3411 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3412 val* var4 /* : nullable Object */;
3413 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3414 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3415 short int var5 /* : Bool */;
3416 int cltype;
3417 int idtype;
3418 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3419 short int var6 /* : Bool */;
3420 int cltype7;
3421 int idtype8;
3422 val* var9 /* : ALeExpr */;
3423 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
3424 long var10 /* : Int */;
3425 long var11 /* : Int */;
3426 var_p = p0;
3427 var = NULL;
3428 var_node_list = var;
3429 {
3430 var1 = parser_work__Parser__pop(var_p);
3431 }
3432 var_nodearraylist4 = var1;
3433 {
3434 var2 = parser_work__Parser__pop(var_p);
3435 }
3436 var_nodearraylist3 = var2;
3437 {
3438 var3 = parser_work__Parser__pop(var_p);
3439 }
3440 var_nodearraylist2 = var3;
3441 {
3442 var4 = parser_work__Parser__pop(var_p);
3443 }
3444 var_nodearraylist1 = var4;
3445 var_pexprnode2 = var_nodearraylist1;
3446 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3447 cltype = type_nullable_parser_nodes__AExpr.color;
3448 idtype = type_nullable_parser_nodes__AExpr.id;
3449 if(var_pexprnode2 == NULL) {
3450 var5 = 1;
3451 } else {
3452 if(cltype >= var_pexprnode2->type->table_size) {
3453 var5 = 0;
3454 } else {
3455 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3456 }
3457 }
3458 if (unlikely(!var5)) {
3459 PRINT_ERROR("Runtime error: %s", "Assert failed");
3460 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7830);
3461 show_backtrace(1);
3462 }
3463 var_pexprnode3 = var_nodearraylist4;
3464 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3465 cltype7 = type_nullable_parser_nodes__AExpr.color;
3466 idtype8 = type_nullable_parser_nodes__AExpr.id;
3467 if(var_pexprnode3 == NULL) {
3468 var6 = 1;
3469 } else {
3470 if(cltype7 >= var_pexprnode3->type->table_size) {
3471 var6 = 0;
3472 } else {
3473 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3474 }
3475 }
3476 if (unlikely(!var6)) {
3477 PRINT_ERROR("Runtime error: %s", "Assert failed");
3478 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7832);
3479 show_backtrace(1);
3480 }
3481 var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr);
3482 {
3483 parser_prod__ALeExpr__init_aleexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#ALeExpr#init_aleexpr on <var9:ALeExpr>*/
3484 }
3485 var_pexprnode1 = var9;
3486 var_node_list = var_pexprnode1;
3487 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction282> */
3488 {
3489 var11 = parser_work__Parser__go_to(var_p, var10);
3490 }
3491 {
3492 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3493 }
3494 RET_LABEL:;
3495 }
3496 /* method parser#ReduceAction282#action for (self: Object, Parser) */
3497 void VIRTUAL_parser__ReduceAction282__action(val* self, val* p0) {
3498 parser__ReduceAction282__action(self, p0); /* Direct call parser#ReduceAction282#action on <self:Object(ReduceAction282)>*/
3499 RET_LABEL:;
3500 }
3501 /* method parser#ReduceAction283#action for (self: ReduceAction283, Parser) */
3502 void parser__ReduceAction283__action(val* self, val* p0) {
3503 val* var_p /* var p: Parser */;
3504 val* var /* : null */;
3505 val* var_node_list /* var node_list: nullable Object */;
3506 val* var1 /* : nullable Object */;
3507 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3508 val* var2 /* : nullable Object */;
3509 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3510 val* var3 /* : nullable Object */;
3511 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3512 val* var4 /* : nullable Object */;
3513 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3514 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3515 short int var5 /* : Bool */;
3516 int cltype;
3517 int idtype;
3518 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3519 short int var6 /* : Bool */;
3520 int cltype7;
3521 int idtype8;
3522 val* var9 /* : ALlExpr */;
3523 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
3524 long var10 /* : Int */;
3525 long var11 /* : Int */;
3526 var_p = p0;
3527 var = NULL;
3528 var_node_list = var;
3529 {
3530 var1 = parser_work__Parser__pop(var_p);
3531 }
3532 var_nodearraylist4 = var1;
3533 {
3534 var2 = parser_work__Parser__pop(var_p);
3535 }
3536 var_nodearraylist3 = var2;
3537 {
3538 var3 = parser_work__Parser__pop(var_p);
3539 }
3540 var_nodearraylist2 = var3;
3541 {
3542 var4 = parser_work__Parser__pop(var_p);
3543 }
3544 var_nodearraylist1 = var4;
3545 var_pexprnode2 = var_nodearraylist1;
3546 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3547 cltype = type_nullable_parser_nodes__AExpr.color;
3548 idtype = type_nullable_parser_nodes__AExpr.id;
3549 if(var_pexprnode2 == NULL) {
3550 var5 = 1;
3551 } else {
3552 if(cltype >= var_pexprnode2->type->table_size) {
3553 var5 = 0;
3554 } else {
3555 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3556 }
3557 }
3558 if (unlikely(!var5)) {
3559 PRINT_ERROR("Runtime error: %s", "Assert failed");
3560 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7851);
3561 show_backtrace(1);
3562 }
3563 var_pexprnode3 = var_nodearraylist4;
3564 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3565 cltype7 = type_nullable_parser_nodes__AExpr.color;
3566 idtype8 = type_nullable_parser_nodes__AExpr.id;
3567 if(var_pexprnode3 == NULL) {
3568 var6 = 1;
3569 } else {
3570 if(cltype7 >= var_pexprnode3->type->table_size) {
3571 var6 = 0;
3572 } else {
3573 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3574 }
3575 }
3576 if (unlikely(!var6)) {
3577 PRINT_ERROR("Runtime error: %s", "Assert failed");
3578 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7853);
3579 show_backtrace(1);
3580 }
3581 var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr);
3582 {
3583 parser_prod__ALlExpr__init_allexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#ALlExpr#init_allexpr on <var9:ALlExpr>*/
3584 }
3585 var_pexprnode1 = var9;
3586 var_node_list = var_pexprnode1;
3587 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction283> */
3588 {
3589 var11 = parser_work__Parser__go_to(var_p, var10);
3590 }
3591 {
3592 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3593 }
3594 RET_LABEL:;
3595 }
3596 /* method parser#ReduceAction283#action for (self: Object, Parser) */
3597 void VIRTUAL_parser__ReduceAction283__action(val* self, val* p0) {
3598 parser__ReduceAction283__action(self, p0); /* Direct call parser#ReduceAction283#action on <self:Object(ReduceAction283)>*/
3599 RET_LABEL:;
3600 }
3601 /* method parser#ReduceAction284#action for (self: ReduceAction284, Parser) */
3602 void parser__ReduceAction284__action(val* self, val* p0) {
3603 val* var_p /* var p: Parser */;
3604 val* var /* : null */;
3605 val* var_node_list /* var node_list: nullable Object */;
3606 val* var1 /* : nullable Object */;
3607 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3608 val* var2 /* : nullable Object */;
3609 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3610 val* var3 /* : nullable Object */;
3611 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3612 val* var4 /* : nullable Object */;
3613 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3614 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3615 short int var5 /* : Bool */;
3616 int cltype;
3617 int idtype;
3618 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3619 short int var6 /* : Bool */;
3620 int cltype7;
3621 int idtype8;
3622 val* var9 /* : AGtExpr */;
3623 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
3624 long var10 /* : Int */;
3625 long var11 /* : Int */;
3626 var_p = p0;
3627 var = NULL;
3628 var_node_list = var;
3629 {
3630 var1 = parser_work__Parser__pop(var_p);
3631 }
3632 var_nodearraylist4 = var1;
3633 {
3634 var2 = parser_work__Parser__pop(var_p);
3635 }
3636 var_nodearraylist3 = var2;
3637 {
3638 var3 = parser_work__Parser__pop(var_p);
3639 }
3640 var_nodearraylist2 = var3;
3641 {
3642 var4 = parser_work__Parser__pop(var_p);
3643 }
3644 var_nodearraylist1 = var4;
3645 var_pexprnode2 = var_nodearraylist1;
3646 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3647 cltype = type_nullable_parser_nodes__AExpr.color;
3648 idtype = type_nullable_parser_nodes__AExpr.id;
3649 if(var_pexprnode2 == NULL) {
3650 var5 = 1;
3651 } else {
3652 if(cltype >= var_pexprnode2->type->table_size) {
3653 var5 = 0;
3654 } else {
3655 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3656 }
3657 }
3658 if (unlikely(!var5)) {
3659 PRINT_ERROR("Runtime error: %s", "Assert failed");
3660 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7872);
3661 show_backtrace(1);
3662 }
3663 var_pexprnode3 = var_nodearraylist4;
3664 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3665 cltype7 = type_nullable_parser_nodes__AExpr.color;
3666 idtype8 = type_nullable_parser_nodes__AExpr.id;
3667 if(var_pexprnode3 == NULL) {
3668 var6 = 1;
3669 } else {
3670 if(cltype7 >= var_pexprnode3->type->table_size) {
3671 var6 = 0;
3672 } else {
3673 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3674 }
3675 }
3676 if (unlikely(!var6)) {
3677 PRINT_ERROR("Runtime error: %s", "Assert failed");
3678 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7874);
3679 show_backtrace(1);
3680 }
3681 var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr);
3682 {
3683 parser_prod__AGtExpr__init_agtexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AGtExpr#init_agtexpr on <var9:AGtExpr>*/
3684 }
3685 var_pexprnode1 = var9;
3686 var_node_list = var_pexprnode1;
3687 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction284> */
3688 {
3689 var11 = parser_work__Parser__go_to(var_p, var10);
3690 }
3691 {
3692 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3693 }
3694 RET_LABEL:;
3695 }
3696 /* method parser#ReduceAction284#action for (self: Object, Parser) */
3697 void VIRTUAL_parser__ReduceAction284__action(val* self, val* p0) {
3698 parser__ReduceAction284__action(self, p0); /* Direct call parser#ReduceAction284#action on <self:Object(ReduceAction284)>*/
3699 RET_LABEL:;
3700 }
3701 /* method parser#ReduceAction285#action for (self: ReduceAction285, Parser) */
3702 void parser__ReduceAction285__action(val* self, val* p0) {
3703 val* var_p /* var p: Parser */;
3704 val* var /* : null */;
3705 val* var_node_list /* var node_list: nullable Object */;
3706 val* var1 /* : nullable Object */;
3707 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3708 val* var2 /* : nullable Object */;
3709 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3710 val* var3 /* : nullable Object */;
3711 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3712 val* var4 /* : nullable Object */;
3713 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3714 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3715 short int var5 /* : Bool */;
3716 int cltype;
3717 int idtype;
3718 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3719 short int var6 /* : Bool */;
3720 int cltype7;
3721 int idtype8;
3722 val* var9 /* : AGeExpr */;
3723 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
3724 long var10 /* : Int */;
3725 long var11 /* : Int */;
3726 var_p = p0;
3727 var = NULL;
3728 var_node_list = var;
3729 {
3730 var1 = parser_work__Parser__pop(var_p);
3731 }
3732 var_nodearraylist4 = var1;
3733 {
3734 var2 = parser_work__Parser__pop(var_p);
3735 }
3736 var_nodearraylist3 = var2;
3737 {
3738 var3 = parser_work__Parser__pop(var_p);
3739 }
3740 var_nodearraylist2 = var3;
3741 {
3742 var4 = parser_work__Parser__pop(var_p);
3743 }
3744 var_nodearraylist1 = var4;
3745 var_pexprnode2 = var_nodearraylist1;
3746 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3747 cltype = type_nullable_parser_nodes__AExpr.color;
3748 idtype = type_nullable_parser_nodes__AExpr.id;
3749 if(var_pexprnode2 == NULL) {
3750 var5 = 1;
3751 } else {
3752 if(cltype >= var_pexprnode2->type->table_size) {
3753 var5 = 0;
3754 } else {
3755 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3756 }
3757 }
3758 if (unlikely(!var5)) {
3759 PRINT_ERROR("Runtime error: %s", "Assert failed");
3760 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7893);
3761 show_backtrace(1);
3762 }
3763 var_pexprnode3 = var_nodearraylist4;
3764 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3765 cltype7 = type_nullable_parser_nodes__AExpr.color;
3766 idtype8 = type_nullable_parser_nodes__AExpr.id;
3767 if(var_pexprnode3 == NULL) {
3768 var6 = 1;
3769 } else {
3770 if(cltype7 >= var_pexprnode3->type->table_size) {
3771 var6 = 0;
3772 } else {
3773 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3774 }
3775 }
3776 if (unlikely(!var6)) {
3777 PRINT_ERROR("Runtime error: %s", "Assert failed");
3778 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7895);
3779 show_backtrace(1);
3780 }
3781 var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr);
3782 {
3783 parser_prod__AGeExpr__init_ageexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AGeExpr#init_ageexpr on <var9:AGeExpr>*/
3784 }
3785 var_pexprnode1 = var9;
3786 var_node_list = var_pexprnode1;
3787 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction285> */
3788 {
3789 var11 = parser_work__Parser__go_to(var_p, var10);
3790 }
3791 {
3792 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3793 }
3794 RET_LABEL:;
3795 }
3796 /* method parser#ReduceAction285#action for (self: Object, Parser) */
3797 void VIRTUAL_parser__ReduceAction285__action(val* self, val* p0) {
3798 parser__ReduceAction285__action(self, p0); /* Direct call parser#ReduceAction285#action on <self:Object(ReduceAction285)>*/
3799 RET_LABEL:;
3800 }
3801 /* method parser#ReduceAction286#action for (self: ReduceAction286, Parser) */
3802 void parser__ReduceAction286__action(val* self, val* p0) {
3803 val* var_p /* var p: Parser */;
3804 val* var /* : null */;
3805 val* var_node_list /* var node_list: nullable Object */;
3806 val* var1 /* : nullable Object */;
3807 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3808 val* var2 /* : nullable Object */;
3809 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3810 val* var3 /* : nullable Object */;
3811 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3812 val* var4 /* : nullable Object */;
3813 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3814 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3815 short int var5 /* : Bool */;
3816 int cltype;
3817 int idtype;
3818 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3819 short int var6 /* : Bool */;
3820 int cltype7;
3821 int idtype8;
3822 val* var9 /* : AGgExpr */;
3823 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
3824 long var10 /* : Int */;
3825 long var11 /* : Int */;
3826 var_p = p0;
3827 var = NULL;
3828 var_node_list = var;
3829 {
3830 var1 = parser_work__Parser__pop(var_p);
3831 }
3832 var_nodearraylist4 = var1;
3833 {
3834 var2 = parser_work__Parser__pop(var_p);
3835 }
3836 var_nodearraylist3 = var2;
3837 {
3838 var3 = parser_work__Parser__pop(var_p);
3839 }
3840 var_nodearraylist2 = var3;
3841 {
3842 var4 = parser_work__Parser__pop(var_p);
3843 }
3844 var_nodearraylist1 = var4;
3845 var_pexprnode2 = var_nodearraylist1;
3846 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3847 cltype = type_nullable_parser_nodes__AExpr.color;
3848 idtype = type_nullable_parser_nodes__AExpr.id;
3849 if(var_pexprnode2 == NULL) {
3850 var5 = 1;
3851 } else {
3852 if(cltype >= var_pexprnode2->type->table_size) {
3853 var5 = 0;
3854 } else {
3855 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3856 }
3857 }
3858 if (unlikely(!var5)) {
3859 PRINT_ERROR("Runtime error: %s", "Assert failed");
3860 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7914);
3861 show_backtrace(1);
3862 }
3863 var_pexprnode3 = var_nodearraylist4;
3864 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3865 cltype7 = type_nullable_parser_nodes__AExpr.color;
3866 idtype8 = type_nullable_parser_nodes__AExpr.id;
3867 if(var_pexprnode3 == NULL) {
3868 var6 = 1;
3869 } else {
3870 if(cltype7 >= var_pexprnode3->type->table_size) {
3871 var6 = 0;
3872 } else {
3873 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3874 }
3875 }
3876 if (unlikely(!var6)) {
3877 PRINT_ERROR("Runtime error: %s", "Assert failed");
3878 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7916);
3879 show_backtrace(1);
3880 }
3881 var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr);
3882 {
3883 parser_prod__AGgExpr__init_aggexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AGgExpr#init_aggexpr on <var9:AGgExpr>*/
3884 }
3885 var_pexprnode1 = var9;
3886 var_node_list = var_pexprnode1;
3887 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction286> */
3888 {
3889 var11 = parser_work__Parser__go_to(var_p, var10);
3890 }
3891 {
3892 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3893 }
3894 RET_LABEL:;
3895 }
3896 /* method parser#ReduceAction286#action for (self: Object, Parser) */
3897 void VIRTUAL_parser__ReduceAction286__action(val* self, val* p0) {
3898 parser__ReduceAction286__action(self, p0); /* Direct call parser#ReduceAction286#action on <self:Object(ReduceAction286)>*/
3899 RET_LABEL:;
3900 }
3901 /* method parser#ReduceAction287#action for (self: ReduceAction287, Parser) */
3902 void parser__ReduceAction287__action(val* self, val* p0) {
3903 val* var_p /* var p: Parser */;
3904 val* var /* : null */;
3905 val* var_node_list /* var node_list: nullable Object */;
3906 val* var1 /* : nullable Object */;
3907 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3908 val* var2 /* : nullable Object */;
3909 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3910 val* var3 /* : nullable Object */;
3911 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3912 val* var4 /* : nullable Object */;
3913 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3914 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3915 short int var5 /* : Bool */;
3916 int cltype;
3917 int idtype;
3918 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3919 short int var6 /* : Bool */;
3920 int cltype7;
3921 int idtype8;
3922 val* var9 /* : AStarshipExpr */;
3923 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
3924 long var10 /* : Int */;
3925 long var11 /* : Int */;
3926 var_p = p0;
3927 var = NULL;
3928 var_node_list = var;
3929 {
3930 var1 = parser_work__Parser__pop(var_p);
3931 }
3932 var_nodearraylist4 = var1;
3933 {
3934 var2 = parser_work__Parser__pop(var_p);
3935 }
3936 var_nodearraylist3 = var2;
3937 {
3938 var3 = parser_work__Parser__pop(var_p);
3939 }
3940 var_nodearraylist2 = var3;
3941 {
3942 var4 = parser_work__Parser__pop(var_p);
3943 }
3944 var_nodearraylist1 = var4;
3945 var_pexprnode2 = var_nodearraylist1;
3946 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3947 cltype = type_nullable_parser_nodes__AExpr.color;
3948 idtype = type_nullable_parser_nodes__AExpr.id;
3949 if(var_pexprnode2 == NULL) {
3950 var5 = 1;
3951 } else {
3952 if(cltype >= var_pexprnode2->type->table_size) {
3953 var5 = 0;
3954 } else {
3955 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3956 }
3957 }
3958 if (unlikely(!var5)) {
3959 PRINT_ERROR("Runtime error: %s", "Assert failed");
3960 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7935);
3961 show_backtrace(1);
3962 }
3963 var_pexprnode3 = var_nodearraylist4;
3964 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3965 cltype7 = type_nullable_parser_nodes__AExpr.color;
3966 idtype8 = type_nullable_parser_nodes__AExpr.id;
3967 if(var_pexprnode3 == NULL) {
3968 var6 = 1;
3969 } else {
3970 if(cltype7 >= var_pexprnode3->type->table_size) {
3971 var6 = 0;
3972 } else {
3973 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3974 }
3975 }
3976 if (unlikely(!var6)) {
3977 PRINT_ERROR("Runtime error: %s", "Assert failed");
3978 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7937);
3979 show_backtrace(1);
3980 }
3981 var9 = NEW_parser_nodes__AStarshipExpr(&type_parser_nodes__AStarshipExpr);
3982 {
3983 parser_prod__AStarshipExpr__init_astarshipexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AStarshipExpr#init_astarshipexpr on <var9:AStarshipExpr>*/
3984 }
3985 var_pexprnode1 = var9;
3986 var_node_list = var_pexprnode1;
3987 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction287> */
3988 {
3989 var11 = parser_work__Parser__go_to(var_p, var10);
3990 }
3991 {
3992 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3993 }
3994 RET_LABEL:;
3995 }
3996 /* method parser#ReduceAction287#action for (self: Object, Parser) */
3997 void VIRTUAL_parser__ReduceAction287__action(val* self, val* p0) {
3998 parser__ReduceAction287__action(self, p0); /* Direct call parser#ReduceAction287#action on <self:Object(ReduceAction287)>*/
3999 RET_LABEL:;
4000 }
4001 /* method parser#ReduceAction288#action for (self: ReduceAction288, Parser) */
4002 void parser__ReduceAction288__action(val* self, val* p0) {
4003 val* var_p /* var p: Parser */;
4004 val* var /* : null */;
4005 val* var_node_list /* var node_list: nullable Object */;
4006 val* var1 /* : nullable Object */;
4007 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4008 val* var2 /* : nullable Object */;
4009 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4010 val* var3 /* : nullable Object */;
4011 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4012 val* var4 /* : nullable Object */;
4013 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4014 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4015 short int var5 /* : Bool */;
4016 int cltype;
4017 int idtype;
4018 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4019 short int var6 /* : Bool */;
4020 int cltype7;
4021 int idtype8;
4022 val* var9 /* : AIsaExpr */;
4023 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
4024 long var10 /* : Int */;
4025 long var11 /* : Int */;
4026 var_p = p0;
4027 var = NULL;
4028 var_node_list = var;
4029 {
4030 var1 = parser_work__Parser__pop(var_p);
4031 }
4032 var_nodearraylist4 = var1;
4033 {
4034 var2 = parser_work__Parser__pop(var_p);
4035 }
4036 var_nodearraylist3 = var2;
4037 {
4038 var3 = parser_work__Parser__pop(var_p);
4039 }
4040 var_nodearraylist2 = var3;
4041 {
4042 var4 = parser_work__Parser__pop(var_p);
4043 }
4044 var_nodearraylist1 = var4;
4045 var_pexprnode2 = var_nodearraylist1;
4046 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4047 cltype = type_nullable_parser_nodes__AExpr.color;
4048 idtype = type_nullable_parser_nodes__AExpr.id;
4049 if(var_pexprnode2 == NULL) {
4050 var5 = 1;
4051 } else {
4052 if(cltype >= var_pexprnode2->type->table_size) {
4053 var5 = 0;
4054 } else {
4055 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4056 }
4057 }
4058 if (unlikely(!var5)) {
4059 PRINT_ERROR("Runtime error: %s", "Assert failed");
4060 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7956);
4061 show_backtrace(1);
4062 }
4063 var_ptypenode3 = var_nodearraylist4;
4064 /* <var_ptypenode3:nullable Object> isa nullable AType */
4065 cltype7 = type_nullable_parser_nodes__AType.color;
4066 idtype8 = type_nullable_parser_nodes__AType.id;
4067 if(var_ptypenode3 == NULL) {
4068 var6 = 1;
4069 } else {
4070 if(cltype7 >= var_ptypenode3->type->table_size) {
4071 var6 = 0;
4072 } else {
4073 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
4074 }
4075 }
4076 if (unlikely(!var6)) {
4077 PRINT_ERROR("Runtime error: %s", "Assert failed");
4078 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7958);
4079 show_backtrace(1);
4080 }
4081 var9 = NEW_parser_nodes__AIsaExpr(&type_parser_nodes__AIsaExpr);
4082 {
4083 parser_prod__AIsaExpr__init_aisaexpr(var9, var_pexprnode2, var_ptypenode3); /* Direct call parser_prod#AIsaExpr#init_aisaexpr on <var9:AIsaExpr>*/
4084 }
4085 var_pexprnode1 = var9;
4086 var_node_list = var_pexprnode1;
4087 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction288> */
4088 {
4089 var11 = parser_work__Parser__go_to(var_p, var10);
4090 }
4091 {
4092 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4093 }
4094 RET_LABEL:;
4095 }
4096 /* method parser#ReduceAction288#action for (self: Object, Parser) */
4097 void VIRTUAL_parser__ReduceAction288__action(val* self, val* p0) {
4098 parser__ReduceAction288__action(self, p0); /* Direct call parser#ReduceAction288#action on <self:Object(ReduceAction288)>*/
4099 RET_LABEL:;
4100 }
4101 /* method parser#ReduceAction290#action for (self: ReduceAction290, Parser) */
4102 void parser__ReduceAction290__action(val* self, val* p0) {
4103 val* var_p /* var p: Parser */;
4104 val* var /* : null */;
4105 val* var_node_list /* var node_list: nullable Object */;
4106 val* var1 /* : nullable Object */;
4107 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4108 val* var2 /* : nullable Object */;
4109 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4110 val* var3 /* : nullable Object */;
4111 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4112 val* var4 /* : nullable Object */;
4113 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4114 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4115 short int var5 /* : Bool */;
4116 int cltype;
4117 int idtype;
4118 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4119 short int var6 /* : Bool */;
4120 int cltype7;
4121 int idtype8;
4122 val* var9 /* : APlusExpr */;
4123 val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */;
4124 long var10 /* : Int */;
4125 long var11 /* : Int */;
4126 var_p = p0;
4127 var = NULL;
4128 var_node_list = var;
4129 {
4130 var1 = parser_work__Parser__pop(var_p);
4131 }
4132 var_nodearraylist4 = var1;
4133 {
4134 var2 = parser_work__Parser__pop(var_p);
4135 }
4136 var_nodearraylist3 = var2;
4137 {
4138 var3 = parser_work__Parser__pop(var_p);
4139 }
4140 var_nodearraylist2 = var3;
4141 {
4142 var4 = parser_work__Parser__pop(var_p);
4143 }
4144 var_nodearraylist1 = var4;
4145 var_pexprnode2 = var_nodearraylist1;
4146 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4147 cltype = type_nullable_parser_nodes__AExpr.color;
4148 idtype = type_nullable_parser_nodes__AExpr.id;
4149 if(var_pexprnode2 == NULL) {
4150 var5 = 1;
4151 } else {
4152 if(cltype >= var_pexprnode2->type->table_size) {
4153 var5 = 0;
4154 } else {
4155 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4156 }
4157 }
4158 if (unlikely(!var5)) {
4159 PRINT_ERROR("Runtime error: %s", "Assert failed");
4160 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7977);
4161 show_backtrace(1);
4162 }
4163 var_pexprnode3 = var_nodearraylist4;
4164 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4165 cltype7 = type_nullable_parser_nodes__AExpr.color;
4166 idtype8 = type_nullable_parser_nodes__AExpr.id;
4167 if(var_pexprnode3 == NULL) {
4168 var6 = 1;
4169 } else {
4170 if(cltype7 >= var_pexprnode3->type->table_size) {
4171 var6 = 0;
4172 } else {
4173 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4174 }
4175 }
4176 if (unlikely(!var6)) {
4177 PRINT_ERROR("Runtime error: %s", "Assert failed");
4178 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7979);
4179 show_backtrace(1);
4180 }
4181 var9 = NEW_parser_nodes__APlusExpr(&type_parser_nodes__APlusExpr);
4182 {
4183 parser_prod__APlusExpr__init_aplusexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#APlusExpr#init_aplusexpr on <var9:APlusExpr>*/
4184 }
4185 var_pexprnode1 = var9;
4186 var_node_list = var_pexprnode1;
4187 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction290> */
4188 {
4189 var11 = parser_work__Parser__go_to(var_p, var10);
4190 }
4191 {
4192 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4193 }
4194 RET_LABEL:;
4195 }
4196 /* method parser#ReduceAction290#action for (self: Object, Parser) */
4197 void VIRTUAL_parser__ReduceAction290__action(val* self, val* p0) {
4198 parser__ReduceAction290__action(self, p0); /* Direct call parser#ReduceAction290#action on <self:Object(ReduceAction290)>*/
4199 RET_LABEL:;
4200 }
4201 /* method parser#ReduceAction291#action for (self: ReduceAction291, Parser) */
4202 void parser__ReduceAction291__action(val* self, val* p0) {
4203 val* var_p /* var p: Parser */;
4204 val* var /* : null */;
4205 val* var_node_list /* var node_list: nullable Object */;
4206 val* var1 /* : nullable Object */;
4207 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4208 val* var2 /* : nullable Object */;
4209 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4210 val* var3 /* : nullable Object */;
4211 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4212 val* var4 /* : nullable Object */;
4213 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4214 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4215 short int var5 /* : Bool */;
4216 int cltype;
4217 int idtype;
4218 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4219 short int var6 /* : Bool */;
4220 int cltype7;
4221 int idtype8;
4222 val* var9 /* : AMinusExpr */;
4223 val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */;
4224 long var10 /* : Int */;
4225 long var11 /* : Int */;
4226 var_p = p0;
4227 var = NULL;
4228 var_node_list = var;
4229 {
4230 var1 = parser_work__Parser__pop(var_p);
4231 }
4232 var_nodearraylist4 = var1;
4233 {
4234 var2 = parser_work__Parser__pop(var_p);
4235 }
4236 var_nodearraylist3 = var2;
4237 {
4238 var3 = parser_work__Parser__pop(var_p);
4239 }
4240 var_nodearraylist2 = var3;
4241 {
4242 var4 = parser_work__Parser__pop(var_p);
4243 }
4244 var_nodearraylist1 = var4;
4245 var_pexprnode2 = var_nodearraylist1;
4246 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4247 cltype = type_nullable_parser_nodes__AExpr.color;
4248 idtype = type_nullable_parser_nodes__AExpr.id;
4249 if(var_pexprnode2 == NULL) {
4250 var5 = 1;
4251 } else {
4252 if(cltype >= var_pexprnode2->type->table_size) {
4253 var5 = 0;
4254 } else {
4255 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4256 }
4257 }
4258 if (unlikely(!var5)) {
4259 PRINT_ERROR("Runtime error: %s", "Assert failed");
4260 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 7998);
4261 show_backtrace(1);
4262 }
4263 var_pexprnode3 = var_nodearraylist4;
4264 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4265 cltype7 = type_nullable_parser_nodes__AExpr.color;
4266 idtype8 = type_nullable_parser_nodes__AExpr.id;
4267 if(var_pexprnode3 == NULL) {
4268 var6 = 1;
4269 } else {
4270 if(cltype7 >= var_pexprnode3->type->table_size) {
4271 var6 = 0;
4272 } else {
4273 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4274 }
4275 }
4276 if (unlikely(!var6)) {
4277 PRINT_ERROR("Runtime error: %s", "Assert failed");
4278 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8000);
4279 show_backtrace(1);
4280 }
4281 var9 = NEW_parser_nodes__AMinusExpr(&type_parser_nodes__AMinusExpr);
4282 {
4283 parser_prod__AMinusExpr__init_aminusexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AMinusExpr#init_aminusexpr on <var9:AMinusExpr>*/
4284 }
4285 var_pexprnode1 = var9;
4286 var_node_list = var_pexprnode1;
4287 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction291> */
4288 {
4289 var11 = parser_work__Parser__go_to(var_p, var10);
4290 }
4291 {
4292 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4293 }
4294 RET_LABEL:;
4295 }
4296 /* method parser#ReduceAction291#action for (self: Object, Parser) */
4297 void VIRTUAL_parser__ReduceAction291__action(val* self, val* p0) {
4298 parser__ReduceAction291__action(self, p0); /* Direct call parser#ReduceAction291#action on <self:Object(ReduceAction291)>*/
4299 RET_LABEL:;
4300 }
4301 /* method parser#ReduceAction293#action for (self: ReduceAction293, Parser) */
4302 void parser__ReduceAction293__action(val* self, val* p0) {
4303 val* var_p /* var p: Parser */;
4304 val* var /* : null */;
4305 val* var_node_list /* var node_list: nullable Object */;
4306 val* var1 /* : nullable Object */;
4307 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4308 val* var2 /* : nullable Object */;
4309 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4310 val* var3 /* : nullable Object */;
4311 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4312 val* var4 /* : nullable Object */;
4313 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4314 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4315 short int var5 /* : Bool */;
4316 int cltype;
4317 int idtype;
4318 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4319 short int var6 /* : Bool */;
4320 int cltype7;
4321 int idtype8;
4322 val* var9 /* : AStarExpr */;
4323 val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */;
4324 long var10 /* : Int */;
4325 long var11 /* : Int */;
4326 var_p = p0;
4327 var = NULL;
4328 var_node_list = var;
4329 {
4330 var1 = parser_work__Parser__pop(var_p);
4331 }
4332 var_nodearraylist4 = var1;
4333 {
4334 var2 = parser_work__Parser__pop(var_p);
4335 }
4336 var_nodearraylist3 = var2;
4337 {
4338 var3 = parser_work__Parser__pop(var_p);
4339 }
4340 var_nodearraylist2 = var3;
4341 {
4342 var4 = parser_work__Parser__pop(var_p);
4343 }
4344 var_nodearraylist1 = var4;
4345 var_pexprnode2 = var_nodearraylist1;
4346 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4347 cltype = type_nullable_parser_nodes__AExpr.color;
4348 idtype = type_nullable_parser_nodes__AExpr.id;
4349 if(var_pexprnode2 == NULL) {
4350 var5 = 1;
4351 } else {
4352 if(cltype >= var_pexprnode2->type->table_size) {
4353 var5 = 0;
4354 } else {
4355 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4356 }
4357 }
4358 if (unlikely(!var5)) {
4359 PRINT_ERROR("Runtime error: %s", "Assert failed");
4360 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8019);
4361 show_backtrace(1);
4362 }
4363 var_pexprnode3 = var_nodearraylist4;
4364 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4365 cltype7 = type_nullable_parser_nodes__AExpr.color;
4366 idtype8 = type_nullable_parser_nodes__AExpr.id;
4367 if(var_pexprnode3 == NULL) {
4368 var6 = 1;
4369 } else {
4370 if(cltype7 >= var_pexprnode3->type->table_size) {
4371 var6 = 0;
4372 } else {
4373 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4374 }
4375 }
4376 if (unlikely(!var6)) {
4377 PRINT_ERROR("Runtime error: %s", "Assert failed");
4378 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8021);
4379 show_backtrace(1);
4380 }
4381 var9 = NEW_parser_nodes__AStarExpr(&type_parser_nodes__AStarExpr);
4382 {
4383 parser_prod__AStarExpr__init_astarexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AStarExpr#init_astarexpr on <var9:AStarExpr>*/
4384 }
4385 var_pexprnode1 = var9;
4386 var_node_list = var_pexprnode1;
4387 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction293> */
4388 {
4389 var11 = parser_work__Parser__go_to(var_p, var10);
4390 }
4391 {
4392 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4393 }
4394 RET_LABEL:;
4395 }
4396 /* method parser#ReduceAction293#action for (self: Object, Parser) */
4397 void VIRTUAL_parser__ReduceAction293__action(val* self, val* p0) {
4398 parser__ReduceAction293__action(self, p0); /* Direct call parser#ReduceAction293#action on <self:Object(ReduceAction293)>*/
4399 RET_LABEL:;
4400 }
4401 /* method parser#ReduceAction294#action for (self: ReduceAction294, Parser) */
4402 void parser__ReduceAction294__action(val* self, val* p0) {
4403 val* var_p /* var p: Parser */;
4404 val* var /* : null */;
4405 val* var_node_list /* var node_list: nullable Object */;
4406 val* var1 /* : nullable Object */;
4407 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4408 val* var2 /* : nullable Object */;
4409 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4410 val* var3 /* : nullable Object */;
4411 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4412 val* var4 /* : nullable Object */;
4413 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4414 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4415 short int var5 /* : Bool */;
4416 int cltype;
4417 int idtype;
4418 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4419 short int var6 /* : Bool */;
4420 int cltype7;
4421 int idtype8;
4422 val* var9 /* : ASlashExpr */;
4423 val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */;
4424 long var10 /* : Int */;
4425 long var11 /* : Int */;
4426 var_p = p0;
4427 var = NULL;
4428 var_node_list = var;
4429 {
4430 var1 = parser_work__Parser__pop(var_p);
4431 }
4432 var_nodearraylist4 = var1;
4433 {
4434 var2 = parser_work__Parser__pop(var_p);
4435 }
4436 var_nodearraylist3 = var2;
4437 {
4438 var3 = parser_work__Parser__pop(var_p);
4439 }
4440 var_nodearraylist2 = var3;
4441 {
4442 var4 = parser_work__Parser__pop(var_p);
4443 }
4444 var_nodearraylist1 = var4;
4445 var_pexprnode2 = var_nodearraylist1;
4446 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4447 cltype = type_nullable_parser_nodes__AExpr.color;
4448 idtype = type_nullable_parser_nodes__AExpr.id;
4449 if(var_pexprnode2 == NULL) {
4450 var5 = 1;
4451 } else {
4452 if(cltype >= var_pexprnode2->type->table_size) {
4453 var5 = 0;
4454 } else {
4455 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4456 }
4457 }
4458 if (unlikely(!var5)) {
4459 PRINT_ERROR("Runtime error: %s", "Assert failed");
4460 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8040);
4461 show_backtrace(1);
4462 }
4463 var_pexprnode3 = var_nodearraylist4;
4464 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4465 cltype7 = type_nullable_parser_nodes__AExpr.color;
4466 idtype8 = type_nullable_parser_nodes__AExpr.id;
4467 if(var_pexprnode3 == NULL) {
4468 var6 = 1;
4469 } else {
4470 if(cltype7 >= var_pexprnode3->type->table_size) {
4471 var6 = 0;
4472 } else {
4473 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4474 }
4475 }
4476 if (unlikely(!var6)) {
4477 PRINT_ERROR("Runtime error: %s", "Assert failed");
4478 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8042);
4479 show_backtrace(1);
4480 }
4481 var9 = NEW_parser_nodes__ASlashExpr(&type_parser_nodes__ASlashExpr);
4482 {
4483 parser_prod__ASlashExpr__init_aslashexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#ASlashExpr#init_aslashexpr on <var9:ASlashExpr>*/
4484 }
4485 var_pexprnode1 = var9;
4486 var_node_list = var_pexprnode1;
4487 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction294> */
4488 {
4489 var11 = parser_work__Parser__go_to(var_p, var10);
4490 }
4491 {
4492 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4493 }
4494 RET_LABEL:;
4495 }
4496 /* method parser#ReduceAction294#action for (self: Object, Parser) */
4497 void VIRTUAL_parser__ReduceAction294__action(val* self, val* p0) {
4498 parser__ReduceAction294__action(self, p0); /* Direct call parser#ReduceAction294#action on <self:Object(ReduceAction294)>*/
4499 RET_LABEL:;
4500 }
4501 /* method parser#ReduceAction295#action for (self: ReduceAction295, Parser) */
4502 void parser__ReduceAction295__action(val* self, val* p0) {
4503 val* var_p /* var p: Parser */;
4504 val* var /* : null */;
4505 val* var_node_list /* var node_list: nullable Object */;
4506 val* var1 /* : nullable Object */;
4507 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4508 val* var2 /* : nullable Object */;
4509 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4510 val* var3 /* : nullable Object */;
4511 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4512 val* var4 /* : nullable Object */;
4513 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4514 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4515 short int var5 /* : Bool */;
4516 int cltype;
4517 int idtype;
4518 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4519 short int var6 /* : Bool */;
4520 int cltype7;
4521 int idtype8;
4522 val* var9 /* : APercentExpr */;
4523 val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */;
4524 long var10 /* : Int */;
4525 long var11 /* : Int */;
4526 var_p = p0;
4527 var = NULL;
4528 var_node_list = var;
4529 {
4530 var1 = parser_work__Parser__pop(var_p);
4531 }
4532 var_nodearraylist4 = var1;
4533 {
4534 var2 = parser_work__Parser__pop(var_p);
4535 }
4536 var_nodearraylist3 = var2;
4537 {
4538 var3 = parser_work__Parser__pop(var_p);
4539 }
4540 var_nodearraylist2 = var3;
4541 {
4542 var4 = parser_work__Parser__pop(var_p);
4543 }
4544 var_nodearraylist1 = var4;
4545 var_pexprnode2 = var_nodearraylist1;
4546 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4547 cltype = type_nullable_parser_nodes__AExpr.color;
4548 idtype = type_nullable_parser_nodes__AExpr.id;
4549 if(var_pexprnode2 == NULL) {
4550 var5 = 1;
4551 } else {
4552 if(cltype >= var_pexprnode2->type->table_size) {
4553 var5 = 0;
4554 } else {
4555 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4556 }
4557 }
4558 if (unlikely(!var5)) {
4559 PRINT_ERROR("Runtime error: %s", "Assert failed");
4560 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8061);
4561 show_backtrace(1);
4562 }
4563 var_pexprnode3 = var_nodearraylist4;
4564 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4565 cltype7 = type_nullable_parser_nodes__AExpr.color;
4566 idtype8 = type_nullable_parser_nodes__AExpr.id;
4567 if(var_pexprnode3 == NULL) {
4568 var6 = 1;
4569 } else {
4570 if(cltype7 >= var_pexprnode3->type->table_size) {
4571 var6 = 0;
4572 } else {
4573 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4574 }
4575 }
4576 if (unlikely(!var6)) {
4577 PRINT_ERROR("Runtime error: %s", "Assert failed");
4578 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8063);
4579 show_backtrace(1);
4580 }
4581 var9 = NEW_parser_nodes__APercentExpr(&type_parser_nodes__APercentExpr);
4582 {
4583 parser_prod__APercentExpr__init_apercentexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#APercentExpr#init_apercentexpr on <var9:APercentExpr>*/
4584 }
4585 var_pexprnode1 = var9;
4586 var_node_list = var_pexprnode1;
4587 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction295> */
4588 {
4589 var11 = parser_work__Parser__go_to(var_p, var10);
4590 }
4591 {
4592 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4593 }
4594 RET_LABEL:;
4595 }
4596 /* method parser#ReduceAction295#action for (self: Object, Parser) */
4597 void VIRTUAL_parser__ReduceAction295__action(val* self, val* p0) {
4598 parser__ReduceAction295__action(self, p0); /* Direct call parser#ReduceAction295#action on <self:Object(ReduceAction295)>*/
4599 RET_LABEL:;
4600 }
4601 /* method parser#ReduceAction297#action for (self: ReduceAction297, Parser) */
4602 void parser__ReduceAction297__action(val* self, val* p0) {
4603 val* var_p /* var p: Parser */;
4604 val* var /* : null */;
4605 val* var_node_list /* var node_list: nullable Object */;
4606 val* var1 /* : nullable Object */;
4607 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4608 val* var2 /* : nullable Object */;
4609 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4610 val* var3 /* : nullable Object */;
4611 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4612 val* var4 /* : nullable Object */;
4613 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4614 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4615 short int var5 /* : Bool */;
4616 int cltype;
4617 int idtype;
4618 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4619 short int var6 /* : Bool */;
4620 int cltype7;
4621 int idtype8;
4622 val* var9 /* : AStarstarExpr */;
4623 val* var_pexprnode1 /* var pexprnode1: nullable AStarstarExpr */;
4624 long var10 /* : Int */;
4625 long var11 /* : Int */;
4626 var_p = p0;
4627 var = NULL;
4628 var_node_list = var;
4629 {
4630 var1 = parser_work__Parser__pop(var_p);
4631 }
4632 var_nodearraylist4 = var1;
4633 {
4634 var2 = parser_work__Parser__pop(var_p);
4635 }
4636 var_nodearraylist3 = var2;
4637 {
4638 var3 = parser_work__Parser__pop(var_p);
4639 }
4640 var_nodearraylist2 = var3;
4641 {
4642 var4 = parser_work__Parser__pop(var_p);
4643 }
4644 var_nodearraylist1 = var4;
4645 var_pexprnode2 = var_nodearraylist1;
4646 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4647 cltype = type_nullable_parser_nodes__AExpr.color;
4648 idtype = type_nullable_parser_nodes__AExpr.id;
4649 if(var_pexprnode2 == NULL) {
4650 var5 = 1;
4651 } else {
4652 if(cltype >= var_pexprnode2->type->table_size) {
4653 var5 = 0;
4654 } else {
4655 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4656 }
4657 }
4658 if (unlikely(!var5)) {
4659 PRINT_ERROR("Runtime error: %s", "Assert failed");
4660 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8082);
4661 show_backtrace(1);
4662 }
4663 var_pexprnode3 = var_nodearraylist4;
4664 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4665 cltype7 = type_nullable_parser_nodes__AExpr.color;
4666 idtype8 = type_nullable_parser_nodes__AExpr.id;
4667 if(var_pexprnode3 == NULL) {
4668 var6 = 1;
4669 } else {
4670 if(cltype7 >= var_pexprnode3->type->table_size) {
4671 var6 = 0;
4672 } else {
4673 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
4674 }
4675 }
4676 if (unlikely(!var6)) {
4677 PRINT_ERROR("Runtime error: %s", "Assert failed");
4678 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8084);
4679 show_backtrace(1);
4680 }
4681 var9 = NEW_parser_nodes__AStarstarExpr(&type_parser_nodes__AStarstarExpr);
4682 {
4683 parser_prod__AStarstarExpr__init_astarstarexpr(var9, var_pexprnode2, var_pexprnode3); /* Direct call parser_prod#AStarstarExpr#init_astarstarexpr on <var9:AStarstarExpr>*/
4684 }
4685 var_pexprnode1 = var9;
4686 var_node_list = var_pexprnode1;
4687 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction297> */
4688 {
4689 var11 = parser_work__Parser__go_to(var_p, var10);
4690 }
4691 {
4692 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4693 }
4694 RET_LABEL:;
4695 }
4696 /* method parser#ReduceAction297#action for (self: Object, Parser) */
4697 void VIRTUAL_parser__ReduceAction297__action(val* self, val* p0) {
4698 parser__ReduceAction297__action(self, p0); /* Direct call parser#ReduceAction297#action on <self:Object(ReduceAction297)>*/
4699 RET_LABEL:;
4700 }
4701 /* method parser#ReduceAction299#action for (self: ReduceAction299, Parser) */
4702 void parser__ReduceAction299__action(val* self, val* p0) {
4703 val* var_p /* var p: Parser */;
4704 val* var /* : null */;
4705 val* var_node_list /* var node_list: nullable Object */;
4706 val* var1 /* : nullable Object */;
4707 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4708 val* var2 /* : nullable Object */;
4709 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4710 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
4711 short int var3 /* : Bool */;
4712 int cltype;
4713 int idtype;
4714 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4715 short int var4 /* : Bool */;
4716 int cltype5;
4717 int idtype6;
4718 val* var7 /* : AUminusExpr */;
4719 val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */;
4720 long var8 /* : Int */;
4721 long var9 /* : Int */;
4722 var_p = p0;
4723 var = NULL;
4724 var_node_list = var;
4725 {
4726 var1 = parser_work__Parser__pop(var_p);
4727 }
4728 var_nodearraylist2 = var1;
4729 {
4730 var2 = parser_work__Parser__pop(var_p);
4731 }
4732 var_nodearraylist1 = var2;
4733 var_tminusnode2 = var_nodearraylist1;
4734 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
4735 cltype = type_nullable_parser_nodes__TMinus.color;
4736 idtype = type_nullable_parser_nodes__TMinus.id;
4737 if(var_tminusnode2 == NULL) {
4738 var3 = 1;
4739 } else {
4740 if(cltype >= var_tminusnode2->type->table_size) {
4741 var3 = 0;
4742 } else {
4743 var3 = var_tminusnode2->type->type_table[cltype] == idtype;
4744 }
4745 }
4746 if (unlikely(!var3)) {
4747 PRINT_ERROR("Runtime error: %s", "Assert failed");
4748 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8101);
4749 show_backtrace(1);
4750 }
4751 var_pexprnode3 = var_nodearraylist2;
4752 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4753 cltype5 = type_nullable_parser_nodes__AExpr.color;
4754 idtype6 = type_nullable_parser_nodes__AExpr.id;
4755 if(var_pexprnode3 == NULL) {
4756 var4 = 1;
4757 } else {
4758 if(cltype5 >= var_pexprnode3->type->table_size) {
4759 var4 = 0;
4760 } else {
4761 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
4762 }
4763 }
4764 if (unlikely(!var4)) {
4765 PRINT_ERROR("Runtime error: %s", "Assert failed");
4766 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8103);
4767 show_backtrace(1);
4768 }
4769 var7 = NEW_parser_nodes__AUminusExpr(&type_parser_nodes__AUminusExpr);
4770 {
4771 parser_prod__AUminusExpr__init_auminusexpr(var7, var_tminusnode2, var_pexprnode3); /* Direct call parser_prod#AUminusExpr#init_auminusexpr on <var7:AUminusExpr>*/
4772 }
4773 var_pexprnode1 = var7;
4774 var_node_list = var_pexprnode1;
4775 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction299> */
4776 {
4777 var9 = parser_work__Parser__go_to(var_p, var8);
4778 }
4779 {
4780 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4781 }
4782 RET_LABEL:;
4783 }
4784 /* method parser#ReduceAction299#action for (self: Object, Parser) */
4785 void VIRTUAL_parser__ReduceAction299__action(val* self, val* p0) {
4786 parser__ReduceAction299__action(self, p0); /* Direct call parser#ReduceAction299#action on <self:Object(ReduceAction299)>*/
4787 RET_LABEL:;
4788 }
4789 /* method parser#ReduceAction300#action for (self: ReduceAction300, Parser) */
4790 void parser__ReduceAction300__action(val* self, val* p0) {
4791 val* var_p /* var p: Parser */;
4792 val* var /* : null */;
4793 val* var_node_list /* var node_list: nullable Object */;
4794 val* var1 /* : nullable Object */;
4795 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4796 val* var2 /* : nullable Object */;
4797 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4798 val* var3 /* : nullable Object */;
4799 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4800 val* var_tkwoncenode2 /* var tkwoncenode2: nullable Object */;
4801 short int var4 /* : Bool */;
4802 int cltype;
4803 int idtype;
4804 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4805 short int var5 /* : Bool */;
4806 int cltype6;
4807 int idtype7;
4808 val* var8 /* : AOnceExpr */;
4809 val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */;
4810 long var9 /* : Int */;
4811 long var10 /* : Int */;
4812 var_p = p0;
4813 var = NULL;
4814 var_node_list = var;
4815 {
4816 var1 = parser_work__Parser__pop(var_p);
4817 }
4818 var_nodearraylist3 = var1;
4819 {
4820 var2 = parser_work__Parser__pop(var_p);
4821 }
4822 var_nodearraylist2 = var2;
4823 {
4824 var3 = parser_work__Parser__pop(var_p);
4825 }
4826 var_nodearraylist1 = var3;
4827 var_tkwoncenode2 = var_nodearraylist1;
4828 /* <var_tkwoncenode2:nullable Object> isa nullable TKwonce */
4829 cltype = type_nullable_parser_nodes__TKwonce.color;
4830 idtype = type_nullable_parser_nodes__TKwonce.id;
4831 if(var_tkwoncenode2 == NULL) {
4832 var4 = 1;
4833 } else {
4834 if(cltype >= var_tkwoncenode2->type->table_size) {
4835 var4 = 0;
4836 } else {
4837 var4 = var_tkwoncenode2->type->type_table[cltype] == idtype;
4838 }
4839 }
4840 if (unlikely(!var4)) {
4841 PRINT_ERROR("Runtime error: %s", "Assert failed");
4842 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8121);
4843 show_backtrace(1);
4844 }
4845 var_pexprnode3 = var_nodearraylist3;
4846 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4847 cltype6 = type_nullable_parser_nodes__AExpr.color;
4848 idtype7 = type_nullable_parser_nodes__AExpr.id;
4849 if(var_pexprnode3 == NULL) {
4850 var5 = 1;
4851 } else {
4852 if(cltype6 >= var_pexprnode3->type->table_size) {
4853 var5 = 0;
4854 } else {
4855 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
4856 }
4857 }
4858 if (unlikely(!var5)) {
4859 PRINT_ERROR("Runtime error: %s", "Assert failed");
4860 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8123);
4861 show_backtrace(1);
4862 }
4863 var8 = NEW_parser_nodes__AOnceExpr(&type_parser_nodes__AOnceExpr);
4864 {
4865 parser_prod__AOnceExpr__init_aonceexpr(var8, var_tkwoncenode2, var_pexprnode3); /* Direct call parser_prod#AOnceExpr#init_aonceexpr on <var8:AOnceExpr>*/
4866 }
4867 var_pexprnode1 = var8;
4868 var_node_list = var_pexprnode1;
4869 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction300> */
4870 {
4871 var10 = parser_work__Parser__go_to(var_p, var9);
4872 }
4873 {
4874 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4875 }
4876 RET_LABEL:;
4877 }
4878 /* method parser#ReduceAction300#action for (self: Object, Parser) */
4879 void VIRTUAL_parser__ReduceAction300__action(val* self, val* p0) {
4880 parser__ReduceAction300__action(self, p0); /* Direct call parser#ReduceAction300#action on <self:Object(ReduceAction300)>*/
4881 RET_LABEL:;
4882 }
4883 /* method parser#ReduceAction302#action for (self: ReduceAction302, Parser) */
4884 void parser__ReduceAction302__action(val* self, val* p0) {
4885 val* var_p /* var p: Parser */;
4886 val* var /* : null */;
4887 val* var_node_list /* var node_list: nullable Object */;
4888 val* var1 /* : nullable Object */;
4889 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4890 val* var2 /* : nullable Object */;
4891 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4892 val* var3 /* : nullable Object */;
4893 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4894 val* var4 /* : nullable Object */;
4895 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4896 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
4897 short int var5 /* : Bool */;
4898 int cltype;
4899 int idtype;
4900 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4901 short int var6 /* : Bool */;
4902 int cltype7;
4903 int idtype8;
4904 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
4905 short int var9 /* : Bool */;
4906 int cltype10;
4907 int idtype11;
4908 val* var12 /* : ANewExpr */;
4909 val* var13 /* : null */;
4910 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
4911 long var14 /* : Int */;
4912 long var15 /* : Int */;
4913 var_p = p0;
4914 var = NULL;
4915 var_node_list = var;
4916 {
4917 var1 = parser_work__Parser__pop(var_p);
4918 }
4919 var_nodearraylist4 = var1;
4920 {
4921 var2 = parser_work__Parser__pop(var_p);
4922 }
4923 var_nodearraylist3 = var2;
4924 {
4925 var3 = parser_work__Parser__pop(var_p);
4926 }
4927 var_nodearraylist2 = var3;
4928 {
4929 var4 = parser_work__Parser__pop(var_p);
4930 }
4931 var_nodearraylist1 = var4;
4932 var_tkwnewnode2 = var_nodearraylist1;
4933 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
4934 cltype = type_nullable_parser_nodes__TKwnew.color;
4935 idtype = type_nullable_parser_nodes__TKwnew.id;
4936 if(var_tkwnewnode2 == NULL) {
4937 var5 = 1;
4938 } else {
4939 if(cltype >= var_tkwnewnode2->type->table_size) {
4940 var5 = 0;
4941 } else {
4942 var5 = var_tkwnewnode2->type->type_table[cltype] == idtype;
4943 }
4944 }
4945 if (unlikely(!var5)) {
4946 PRINT_ERROR("Runtime error: %s", "Assert failed");
4947 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8142);
4948 show_backtrace(1);
4949 }
4950 var_ptypenode3 = var_nodearraylist3;
4951 /* <var_ptypenode3:nullable Object> isa nullable AType */
4952 cltype7 = type_nullable_parser_nodes__AType.color;
4953 idtype8 = type_nullable_parser_nodes__AType.id;
4954 if(var_ptypenode3 == NULL) {
4955 var6 = 1;
4956 } else {
4957 if(cltype7 >= var_ptypenode3->type->table_size) {
4958 var6 = 0;
4959 } else {
4960 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
4961 }
4962 }
4963 if (unlikely(!var6)) {
4964 PRINT_ERROR("Runtime error: %s", "Assert failed");
4965 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8144);
4966 show_backtrace(1);
4967 }
4968 var_pexprsnode5 = var_nodearraylist4;
4969 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
4970 cltype10 = type_nullable_parser_nodes__AExprs.color;
4971 idtype11 = type_nullable_parser_nodes__AExprs.id;
4972 if(var_pexprsnode5 == NULL) {
4973 var9 = 1;
4974 } else {
4975 if(cltype10 >= var_pexprsnode5->type->table_size) {
4976 var9 = 0;
4977 } else {
4978 var9 = var_pexprsnode5->type->type_table[cltype10] == idtype11;
4979 }
4980 }
4981 if (unlikely(!var9)) {
4982 PRINT_ERROR("Runtime error: %s", "Assert failed");
4983 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8146);
4984 show_backtrace(1);
4985 }
4986 var12 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
4987 var13 = NULL;
4988 {
4989 parser_prod__ANewExpr__init_anewexpr(var12, var_tkwnewnode2, var_ptypenode3, var13, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var12:ANewExpr>*/
4990 }
4991 var_pexprnode1 = var12;
4992 var_node_list = var_pexprnode1;
4993 var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction302> */
4994 {
4995 var15 = parser_work__Parser__go_to(var_p, var14);
4996 }
4997 {
4998 parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4999 }
5000 RET_LABEL:;
5001 }
5002 /* method parser#ReduceAction302#action for (self: Object, Parser) */
5003 void VIRTUAL_parser__ReduceAction302__action(val* self, val* p0) {
5004 parser__ReduceAction302__action(self, p0); /* Direct call parser#ReduceAction302#action on <self:Object(ReduceAction302)>*/
5005 RET_LABEL:;
5006 }
5007 /* method parser#ReduceAction303#action for (self: ReduceAction303, Parser) */
5008 void parser__ReduceAction303__action(val* self, val* p0) {
5009 val* var_p /* var p: Parser */;
5010 val* var /* : null */;
5011 val* var_node_list /* var node_list: nullable Object */;
5012 val* var1 /* : nullable Object */;
5013 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5014 val* var2 /* : nullable Object */;
5015 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5016 val* var3 /* : nullable Object */;
5017 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5018 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
5019 short int var4 /* : Bool */;
5020 int cltype;
5021 int idtype;
5022 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
5023 short int var5 /* : Bool */;
5024 int cltype6;
5025 int idtype7;
5026 val* var8 /* : Array[Object] */;
5027 val* var_listnode6 /* var listnode6: Array[Object] */;
5028 val* var9 /* : AListExprs */;
5029 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
5030 val* var10 /* : ANewExpr */;
5031 val* var11 /* : null */;
5032 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
5033 long var12 /* : Int */;
5034 long var13 /* : Int */;
5035 var_p = p0;
5036 var = NULL;
5037 var_node_list = var;
5038 {
5039 var1 = parser_work__Parser__pop(var_p);
5040 }
5041 var_nodearraylist3 = var1;
5042 {
5043 var2 = parser_work__Parser__pop(var_p);
5044 }
5045 var_nodearraylist2 = var2;
5046 {
5047 var3 = parser_work__Parser__pop(var_p);
5048 }
5049 var_nodearraylist1 = var3;
5050 var_tkwnewnode2 = var_nodearraylist1;
5051 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
5052 cltype = type_nullable_parser_nodes__TKwnew.color;
5053 idtype = type_nullable_parser_nodes__TKwnew.id;
5054 if(var_tkwnewnode2 == NULL) {
5055 var4 = 1;
5056 } else {
5057 if(cltype >= var_tkwnewnode2->type->table_size) {
5058 var4 = 0;
5059 } else {
5060 var4 = var_tkwnewnode2->type->type_table[cltype] == idtype;
5061 }
5062 }
5063 if (unlikely(!var4)) {
5064 PRINT_ERROR("Runtime error: %s", "Assert failed");
5065 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8166);
5066 show_backtrace(1);
5067 }
5068 var_ptypenode3 = var_nodearraylist3;
5069 /* <var_ptypenode3:nullable Object> isa nullable AType */
5070 cltype6 = type_nullable_parser_nodes__AType.color;
5071 idtype7 = type_nullable_parser_nodes__AType.id;
5072 if(var_ptypenode3 == NULL) {
5073 var5 = 1;
5074 } else {
5075 if(cltype6 >= var_ptypenode3->type->table_size) {
5076 var5 = 0;
5077 } else {
5078 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
5079 }
5080 }
5081 if (unlikely(!var5)) {
5082 PRINT_ERROR("Runtime error: %s", "Assert failed");
5083 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8168);
5084 show_backtrace(1);
5085 }
5086 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
5087 {
5088 ((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on <var8:Array[Object]>*/;
5089 }
5090 var_listnode6 = var8;
5091 var9 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
5092 {
5093 parser_prod__AListExprs__init_alistexprs(var9, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var9:AListExprs>*/
5094 }
5095 var_pexprsnode5 = var9;
5096 var10 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
5097 var11 = NULL;
5098 {
5099 parser_prod__ANewExpr__init_anewexpr(var10, var_tkwnewnode2, var_ptypenode3, var11, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var10:ANewExpr>*/
5100 }
5101 var_pexprnode1 = var10;
5102 var_node_list = var_pexprnode1;
5103 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction303> */
5104 {
5105 var13 = parser_work__Parser__go_to(var_p, var12);
5106 }
5107 {
5108 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5109 }
5110 RET_LABEL:;
5111 }
5112 /* method parser#ReduceAction303#action for (self: Object, Parser) */
5113 void VIRTUAL_parser__ReduceAction303__action(val* self, val* p0) {
5114 parser__ReduceAction303__action(self, p0); /* Direct call parser#ReduceAction303#action on <self:Object(ReduceAction303)>*/
5115 RET_LABEL:;
5116 }
5117 /* method parser#ReduceAction304#action for (self: ReduceAction304, Parser) */
5118 void parser__ReduceAction304__action(val* self, val* p0) {
5119 val* var_p /* var p: Parser */;
5120 val* var /* : null */;
5121 val* var_node_list /* var node_list: nullable Object */;
5122 val* var1 /* : nullable Object */;
5123 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5124 val* var2 /* : nullable Object */;
5125 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5126 val* var3 /* : nullable Object */;
5127 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5128 val* var4 /* : nullable Object */;
5129 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5130 val* var5 /* : nullable Object */;
5131 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5132 val* var6 /* : nullable Object */;
5133 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5134 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
5135 short int var7 /* : Bool */;
5136 int cltype;
5137 int idtype;
5138 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5139 short int var8 /* : Bool */;
5140 int cltype9;
5141 int idtype10;
5142 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
5143 short int var11 /* : Bool */;
5144 int cltype12;
5145 int idtype13;
5146 val* var14 /* : AIssetAttrExpr */;
5147 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
5148 long var15 /* : Int */;
5149 long var16 /* : Int */;
5150 var_p = p0;
5151 var = NULL;
5152 var_node_list = var;
5153 {
5154 var1 = parser_work__Parser__pop(var_p);
5155 }
5156 var_nodearraylist6 = var1;
5157 {
5158 var2 = parser_work__Parser__pop(var_p);
5159 }
5160 var_nodearraylist5 = var2;
5161 {
5162 var3 = parser_work__Parser__pop(var_p);
5163 }
5164 var_nodearraylist4 = var3;
5165 {
5166 var4 = parser_work__Parser__pop(var_p);
5167 }
5168 var_nodearraylist3 = var4;
5169 {
5170 var5 = parser_work__Parser__pop(var_p);
5171 }
5172 var_nodearraylist2 = var5;
5173 {
5174 var6 = parser_work__Parser__pop(var_p);
5175 }
5176 var_nodearraylist1 = var6;
5177 var_tkwissetnode2 = var_nodearraylist1;
5178 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
5179 cltype = type_nullable_parser_nodes__TKwisset.color;
5180 idtype = type_nullable_parser_nodes__TKwisset.id;
5181 if(var_tkwissetnode2 == NULL) {
5182 var7 = 1;
5183 } else {
5184 if(cltype >= var_tkwissetnode2->type->table_size) {
5185 var7 = 0;
5186 } else {
5187 var7 = var_tkwissetnode2->type->type_table[cltype] == idtype;
5188 }
5189 }
5190 if (unlikely(!var7)) {
5191 PRINT_ERROR("Runtime error: %s", "Assert failed");
5192 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8195);
5193 show_backtrace(1);
5194 }
5195 var_pexprnode3 = var_nodearraylist2;
5196 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5197 cltype9 = type_nullable_parser_nodes__AExpr.color;
5198 idtype10 = type_nullable_parser_nodes__AExpr.id;
5199 if(var_pexprnode3 == NULL) {
5200 var8 = 1;
5201 } else {
5202 if(cltype9 >= var_pexprnode3->type->table_size) {
5203 var8 = 0;
5204 } else {
5205 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
5206 }
5207 }
5208 if (unlikely(!var8)) {
5209 PRINT_ERROR("Runtime error: %s", "Assert failed");
5210 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8197);
5211 show_backtrace(1);
5212 }
5213 var_tattridnode4 = var_nodearraylist6;
5214 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
5215 cltype12 = type_nullable_parser_nodes__TAttrid.color;
5216 idtype13 = type_nullable_parser_nodes__TAttrid.id;
5217 if(var_tattridnode4 == NULL) {
5218 var11 = 1;
5219 } else {
5220 if(cltype12 >= var_tattridnode4->type->table_size) {
5221 var11 = 0;
5222 } else {
5223 var11 = var_tattridnode4->type->type_table[cltype12] == idtype13;
5224 }
5225 }
5226 if (unlikely(!var11)) {
5227 PRINT_ERROR("Runtime error: %s", "Assert failed");
5228 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8199);
5229 show_backtrace(1);
5230 }
5231 var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
5232 {
5233 parser_prod__AIssetAttrExpr__init_aissetattrexpr(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var14:AIssetAttrExpr>*/
5234 }
5235 var_pexprnode1 = var14;
5236 var_node_list = var_pexprnode1;
5237 var15 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction304> */
5238 {
5239 var16 = parser_work__Parser__go_to(var_p, var15);
5240 }
5241 {
5242 parser_work__Parser__push(var_p, var16, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5243 }
5244 RET_LABEL:;
5245 }
5246 /* method parser#ReduceAction304#action for (self: Object, Parser) */
5247 void VIRTUAL_parser__ReduceAction304__action(val* self, val* p0) {
5248 parser__ReduceAction304__action(self, p0); /* Direct call parser#ReduceAction304#action on <self:Object(ReduceAction304)>*/
5249 RET_LABEL:;
5250 }
5251 /* method parser#ReduceAction305#action for (self: ReduceAction305, Parser) */
5252 void parser__ReduceAction305__action(val* self, val* p0) {
5253 val* var_p /* var p: Parser */;
5254 val* var /* : null */;
5255 val* var_node_list /* var node_list: nullable Object */;
5256 val* var1 /* : nullable Object */;
5257 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5258 val* var2 /* : nullable Object */;
5259 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5260 val* var3 /* : nullable Object */;
5261 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5262 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
5263 short int var4 /* : Bool */;
5264 int cltype;
5265 int idtype;
5266 val* var5 /* : AImplicitSelfExpr */;
5267 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
5268 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
5269 short int var7 /* : Bool */;
5270 int cltype8;
5271 int idtype9;
5272 val* var10 /* : AIssetAttrExpr */;
5273 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
5274 long var11 /* : Int */;
5275 long var12 /* : Int */;
5276 var_p = p0;
5277 var = NULL;
5278 var_node_list = var;
5279 {
5280 var1 = parser_work__Parser__pop(var_p);
5281 }
5282 var_nodearraylist3 = var1;
5283 {
5284 var2 = parser_work__Parser__pop(var_p);
5285 }
5286 var_nodearraylist2 = var2;
5287 {
5288 var3 = parser_work__Parser__pop(var_p);
5289 }
5290 var_nodearraylist1 = var3;
5291 var_tkwissetnode2 = var_nodearraylist1;
5292 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
5293 cltype = type_nullable_parser_nodes__TKwisset.color;
5294 idtype = type_nullable_parser_nodes__TKwisset.id;
5295 if(var_tkwissetnode2 == NULL) {
5296 var4 = 1;
5297 } else {
5298 if(cltype >= var_tkwissetnode2->type->table_size) {
5299 var4 = 0;
5300 } else {
5301 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
5302 }
5303 }
5304 if (unlikely(!var4)) {
5305 PRINT_ERROR("Runtime error: %s", "Assert failed");
5306 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8218);
5307 show_backtrace(1);
5308 }
5309 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5310 {
5311 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var5) on <var5:AImplicitSelfExpr> */
5312 RET_LABEL6:(void)0;
5313 }
5314 }
5315 var_pexprnode3 = var5;
5316 var_tattridnode4 = var_nodearraylist3;
5317 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
5318 cltype8 = type_nullable_parser_nodes__TAttrid.color;
5319 idtype9 = type_nullable_parser_nodes__TAttrid.id;
5320 if(var_tattridnode4 == NULL) {
5321 var7 = 1;
5322 } else {
5323 if(cltype8 >= var_tattridnode4->type->table_size) {
5324 var7 = 0;
5325 } else {
5326 var7 = var_tattridnode4->type->type_table[cltype8] == idtype9;
5327 }
5328 }
5329 if (unlikely(!var7)) {
5330 PRINT_ERROR("Runtime error: %s", "Assert failed");
5331 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8221);
5332 show_backtrace(1);
5333 }
5334 var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
5335 {
5336 parser_prod__AIssetAttrExpr__init_aissetattrexpr(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var10:AIssetAttrExpr>*/
5337 }
5338 var_pexprnode1 = var10;
5339 var_node_list = var_pexprnode1;
5340 var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction305> */
5341 {
5342 var12 = parser_work__Parser__go_to(var_p, var11);
5343 }
5344 {
5345 parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5346 }
5347 RET_LABEL:;
5348 }
5349 /* method parser#ReduceAction305#action for (self: Object, Parser) */
5350 void VIRTUAL_parser__ReduceAction305__action(val* self, val* p0) {
5351 parser__ReduceAction305__action(self, p0); /* Direct call parser#ReduceAction305#action on <self:Object(ReduceAction305)>*/
5352 RET_LABEL:;
5353 }
5354 /* method parser#ReduceAction307#action for (self: ReduceAction307, Parser) */
5355 void parser__ReduceAction307__action(val* self, val* p0) {
5356 val* var_p /* var p: Parser */;
5357 val* var /* : null */;
5358 val* var_node_list /* var node_list: nullable Object */;
5359 val* var1 /* : nullable Object */;
5360 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5361 val* var2 /* : nullable Object */;
5362 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5363 val* var3 /* : nullable Object */;
5364 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5365 val* var4 /* : nullable Object */;
5366 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5367 val* var5 /* : nullable Object */;
5368 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5369 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5370 short int var6 /* : Bool */;
5371 int cltype;
5372 int idtype;
5373 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5374 short int var7 /* : Bool */;
5375 int cltype8;
5376 int idtype9;
5377 val* var10 /* : AAttrExpr */;
5378 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
5379 long var11 /* : Int */;
5380 long var12 /* : Int */;
5381 var_p = p0;
5382 var = NULL;
5383 var_node_list = var;
5384 {
5385 var1 = parser_work__Parser__pop(var_p);
5386 }
5387 var_nodearraylist5 = var1;
5388 {
5389 var2 = parser_work__Parser__pop(var_p);
5390 }
5391 var_nodearraylist4 = var2;
5392 {
5393 var3 = parser_work__Parser__pop(var_p);
5394 }
5395 var_nodearraylist3 = var3;
5396 {
5397 var4 = parser_work__Parser__pop(var_p);
5398 }
5399 var_nodearraylist2 = var4;
5400 {
5401 var5 = parser_work__Parser__pop(var_p);
5402 }
5403 var_nodearraylist1 = var5;
5404 var_pexprnode2 = var_nodearraylist1;
5405 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5406 cltype = type_nullable_parser_nodes__AExpr.color;
5407 idtype = type_nullable_parser_nodes__AExpr.id;
5408 if(var_pexprnode2 == NULL) {
5409 var6 = 1;
5410 } else {
5411 if(cltype >= var_pexprnode2->type->table_size) {
5412 var6 = 0;
5413 } else {
5414 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
5415 }
5416 }
5417 if (unlikely(!var6)) {
5418 PRINT_ERROR("Runtime error: %s", "Assert failed");
5419 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8242);
5420 show_backtrace(1);
5421 }
5422 var_tattridnode3 = var_nodearraylist5;
5423 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5424 cltype8 = type_nullable_parser_nodes__TAttrid.color;
5425 idtype9 = type_nullable_parser_nodes__TAttrid.id;
5426 if(var_tattridnode3 == NULL) {
5427 var7 = 1;
5428 } else {
5429 if(cltype8 >= var_tattridnode3->type->table_size) {
5430 var7 = 0;
5431 } else {
5432 var7 = var_tattridnode3->type->type_table[cltype8] == idtype9;
5433 }
5434 }
5435 if (unlikely(!var7)) {
5436 PRINT_ERROR("Runtime error: %s", "Assert failed");
5437 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8244);
5438 show_backtrace(1);
5439 }
5440 var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
5441 {
5442 parser_prod__AAttrExpr__init_aattrexpr(var10, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var10:AAttrExpr>*/
5443 }
5444 var_pexprnode1 = var10;
5445 var_node_list = var_pexprnode1;
5446 var11 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction307> */
5447 {
5448 var12 = parser_work__Parser__go_to(var_p, var11);
5449 }
5450 {
5451 parser_work__Parser__push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5452 }
5453 RET_LABEL:;
5454 }
5455 /* method parser#ReduceAction307#action for (self: Object, Parser) */
5456 void VIRTUAL_parser__ReduceAction307__action(val* self, val* p0) {
5457 parser__ReduceAction307__action(self, p0); /* Direct call parser#ReduceAction307#action on <self:Object(ReduceAction307)>*/
5458 RET_LABEL:;
5459 }
5460 /* method parser#ReduceAction308#action for (self: ReduceAction308, Parser) */
5461 void parser__ReduceAction308__action(val* self, val* p0) {
5462 val* var_p /* var p: Parser */;
5463 val* var /* : null */;
5464 val* var_node_list /* var node_list: nullable Object */;
5465 val* var1 /* : nullable Object */;
5466 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5467 val* var2 /* : nullable Object */;
5468 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5469 val* var3 /* : AImplicitSelfExpr */;
5470 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5471 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5472 short int var5 /* : Bool */;
5473 int cltype;
5474 int idtype;
5475 val* var6 /* : AAttrExpr */;
5476 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
5477 long var7 /* : Int */;
5478 long var8 /* : Int */;
5479 var_p = p0;
5480 var = NULL;
5481 var_node_list = var;
5482 {
5483 var1 = parser_work__Parser__pop(var_p);
5484 }
5485 var_nodearraylist2 = var1;
5486 {
5487 var2 = parser_work__Parser__pop(var_p);
5488 }
5489 var_nodearraylist1 = var2;
5490 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5491 {
5492 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on <var3:AImplicitSelfExpr> */
5493 RET_LABEL4:(void)0;
5494 }
5495 }
5496 var_pexprnode2 = var3;
5497 var_tattridnode3 = var_nodearraylist2;
5498 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5499 cltype = type_nullable_parser_nodes__TAttrid.color;
5500 idtype = type_nullable_parser_nodes__TAttrid.id;
5501 if(var_tattridnode3 == NULL) {
5502 var5 = 1;
5503 } else {
5504 if(cltype >= var_tattridnode3->type->table_size) {
5505 var5 = 0;
5506 } else {
5507 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
5508 }
5509 }
5510 if (unlikely(!var5)) {
5511 PRINT_ERROR("Runtime error: %s", "Assert failed");
5512 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8262);
5513 show_backtrace(1);
5514 }
5515 var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
5516 {
5517 parser_prod__AAttrExpr__init_aattrexpr(var6, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var6:AAttrExpr>*/
5518 }
5519 var_pexprnode1 = var6;
5520 var_node_list = var_pexprnode1;
5521 var7 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction308> */
5522 {
5523 var8 = parser_work__Parser__go_to(var_p, var7);
5524 }
5525 {
5526 parser_work__Parser__push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5527 }
5528 RET_LABEL:;
5529 }
5530 /* method parser#ReduceAction308#action for (self: Object, Parser) */
5531 void VIRTUAL_parser__ReduceAction308__action(val* self, val* p0) {
5532 parser__ReduceAction308__action(self, p0); /* Direct call parser#ReduceAction308#action on <self:Object(ReduceAction308)>*/
5533 RET_LABEL:;
5534 }
5535 /* method parser#ReduceAction310#action for (self: ReduceAction310, Parser) */
5536 void parser__ReduceAction310__action(val* self, val* p0) {
5537 val* var_p /* var p: Parser */;
5538 val* var /* : null */;
5539 val* var_node_list /* var node_list: nullable Object */;
5540 val* var1 /* : nullable Object */;
5541 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5542 val* var2 /* : nullable Object */;
5543 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5544 val* var3 /* : nullable Object */;
5545 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5546 val* var4 /* : nullable Object */;
5547 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5548 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5549 short int var5 /* : Bool */;
5550 int cltype;
5551 int idtype;
5552 val* var_tidnode3 /* var tidnode3: nullable Object */;
5553 short int var6 /* : Bool */;
5554 int cltype7;
5555 int idtype8;
5556 val* var9 /* : Array[Object] */;
5557 val* var_listnode5 /* var listnode5: Array[Object] */;
5558 val* var10 /* : AListExprs */;
5559 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5560 val* var11 /* : ACallExpr */;
5561 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5562 long var12 /* : Int */;
5563 long var13 /* : Int */;
5564 var_p = p0;
5565 var = NULL;
5566 var_node_list = var;
5567 {
5568 var1 = parser_work__Parser__pop(var_p);
5569 }
5570 var_nodearraylist4 = var1;
5571 {
5572 var2 = parser_work__Parser__pop(var_p);
5573 }
5574 var_nodearraylist3 = var2;
5575 {
5576 var3 = parser_work__Parser__pop(var_p);
5577 }
5578 var_nodearraylist2 = var3;
5579 {
5580 var4 = parser_work__Parser__pop(var_p);
5581 }
5582 var_nodearraylist1 = var4;
5583 var_pexprnode2 = var_nodearraylist1;
5584 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5585 cltype = type_nullable_parser_nodes__AExpr.color;
5586 idtype = type_nullable_parser_nodes__AExpr.id;
5587 if(var_pexprnode2 == NULL) {
5588 var5 = 1;
5589 } else {
5590 if(cltype >= var_pexprnode2->type->table_size) {
5591 var5 = 0;
5592 } else {
5593 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
5594 }
5595 }
5596 if (unlikely(!var5)) {
5597 PRINT_ERROR("Runtime error: %s", "Assert failed");
5598 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8281);
5599 show_backtrace(1);
5600 }
5601 var_tidnode3 = var_nodearraylist4;
5602 /* <var_tidnode3:nullable Object> isa nullable TId */
5603 cltype7 = type_nullable_parser_nodes__TId.color;
5604 idtype8 = type_nullable_parser_nodes__TId.id;
5605 if(var_tidnode3 == NULL) {
5606 var6 = 1;
5607 } else {
5608 if(cltype7 >= var_tidnode3->type->table_size) {
5609 var6 = 0;
5610 } else {
5611 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
5612 }
5613 }
5614 if (unlikely(!var6)) {
5615 PRINT_ERROR("Runtime error: %s", "Assert failed");
5616 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8283);
5617 show_backtrace(1);
5618 }
5619 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
5620 {
5621 ((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on <var9:Array[Object]>*/;
5622 }
5623 var_listnode5 = var9;
5624 var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
5625 {
5626 parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var10:AListExprs>*/
5627 }
5628 var_pexprsnode4 = var10;
5629 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
5630 {
5631 parser_prod__ACallExpr__init_acallexpr(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
5632 }
5633 var_pexprnode1 = var11;
5634 var_node_list = var_pexprnode1;
5635 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction310> */
5636 {
5637 var13 = parser_work__Parser__go_to(var_p, var12);
5638 }
5639 {
5640 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5641 }
5642 RET_LABEL:;
5643 }
5644 /* method parser#ReduceAction310#action for (self: Object, Parser) */
5645 void VIRTUAL_parser__ReduceAction310__action(val* self, val* p0) {
5646 parser__ReduceAction310__action(self, p0); /* Direct call parser#ReduceAction310#action on <self:Object(ReduceAction310)>*/
5647 RET_LABEL:;
5648 }
5649 /* method parser#ReduceAction312#action for (self: ReduceAction312, Parser) */
5650 void parser__ReduceAction312__action(val* self, val* p0) {
5651 val* var_p /* var p: Parser */;
5652 val* var /* : null */;
5653 val* var_node_list /* var node_list: nullable Object */;
5654 val* var1 /* : nullable Object */;
5655 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5656 val* var2 /* : nullable Object */;
5657 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5658 val* var3 /* : nullable Object */;
5659 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5660 val* var4 /* : nullable Object */;
5661 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5662 val* var5 /* : nullable Object */;
5663 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5664 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5665 short int var6 /* : Bool */;
5666 int cltype;
5667 int idtype;
5668 val* var_tidnode3 /* var tidnode3: nullable Object */;
5669 short int var7 /* : Bool */;
5670 int cltype8;
5671 int idtype9;
5672 val* var10 /* : Array[Object] */;
5673 val* var_listnode5 /* var listnode5: Array[Object] */;
5674 val* var11 /* : AListExprs */;
5675 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5676 val* var12 /* : ACallExpr */;
5677 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5678 long var13 /* : Int */;
5679 long var14 /* : Int */;
5680 var_p = p0;
5681 var = NULL;
5682 var_node_list = var;
5683 {
5684 var1 = parser_work__Parser__pop(var_p);
5685 }
5686 var_nodearraylist5 = var1;
5687 {
5688 var2 = parser_work__Parser__pop(var_p);
5689 }
5690 var_nodearraylist4 = var2;
5691 {
5692 var3 = parser_work__Parser__pop(var_p);
5693 }
5694 var_nodearraylist3 = var3;
5695 {
5696 var4 = parser_work__Parser__pop(var_p);
5697 }
5698 var_nodearraylist2 = var4;
5699 {
5700 var5 = parser_work__Parser__pop(var_p);
5701 }
5702 var_nodearraylist1 = var5;
5703 var_pexprnode2 = var_nodearraylist1;
5704 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5705 cltype = type_nullable_parser_nodes__AExpr.color;
5706 idtype = type_nullable_parser_nodes__AExpr.id;
5707 if(var_pexprnode2 == NULL) {
5708 var6 = 1;
5709 } else {
5710 if(cltype >= var_pexprnode2->type->table_size) {
5711 var6 = 0;
5712 } else {
5713 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
5714 }
5715 }
5716 if (unlikely(!var6)) {
5717 PRINT_ERROR("Runtime error: %s", "Assert failed");
5718 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8308);
5719 show_backtrace(1);
5720 }
5721 var_tidnode3 = var_nodearraylist5;
5722 /* <var_tidnode3:nullable Object> isa nullable TId */
5723 cltype8 = type_nullable_parser_nodes__TId.color;
5724 idtype9 = type_nullable_parser_nodes__TId.id;
5725 if(var_tidnode3 == NULL) {
5726 var7 = 1;
5727 } else {
5728 if(cltype8 >= var_tidnode3->type->table_size) {
5729 var7 = 0;
5730 } else {
5731 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
5732 }
5733 }
5734 if (unlikely(!var7)) {
5735 PRINT_ERROR("Runtime error: %s", "Assert failed");
5736 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8310);
5737 show_backtrace(1);
5738 }
5739 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
5740 {
5741 ((void (*)(val*))(var10->class->vft[COLOR_kernel__Object__init]))(var10) /* init on <var10:Array[Object]>*/;
5742 }
5743 var_listnode5 = var10;
5744 var11 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
5745 {
5746 parser_prod__AListExprs__init_alistexprs(var11, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var11:AListExprs>*/
5747 }
5748 var_pexprsnode4 = var11;
5749 var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
5750 {
5751 parser_prod__ACallExpr__init_acallexpr(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var12:ACallExpr>*/
5752 }
5753 var_pexprnode1 = var12;
5754 var_node_list = var_pexprnode1;
5755 var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction312> */
5756 {
5757 var14 = parser_work__Parser__go_to(var_p, var13);
5758 }
5759 {
5760 parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5761 }
5762 RET_LABEL:;
5763 }
5764 /* method parser#ReduceAction312#action for (self: Object, Parser) */
5765 void VIRTUAL_parser__ReduceAction312__action(val* self, val* p0) {
5766 parser__ReduceAction312__action(self, p0); /* Direct call parser#ReduceAction312#action on <self:Object(ReduceAction312)>*/
5767 RET_LABEL:;
5768 }
5769 /* method parser#ReduceAction314#action for (self: ReduceAction314, Parser) */
5770 void parser__ReduceAction314__action(val* self, val* p0) {
5771 val* var_p /* var p: Parser */;
5772 val* var /* : null */;
5773 val* var_node_list /* var node_list: nullable Object */;
5774 val* var1 /* : nullable Object */;
5775 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5776 val* var2 /* : nullable Object */;
5777 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5778 val* var3 /* : nullable Object */;
5779 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5780 val* var4 /* : nullable Object */;
5781 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5782 val* var5 /* : nullable Object */;
5783 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5784 val* var6 /* : nullable Object */;
5785 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5786 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5787 short int var7 /* : Bool */;
5788 int cltype;
5789 int idtype;
5790 val* var_tidnode3 /* var tidnode3: nullable Object */;
5791 short int var8 /* : Bool */;
5792 int cltype9;
5793 int idtype10;
5794 val* var11 /* : Array[Object] */;
5795 val* var_listnode5 /* var listnode5: Array[Object] */;
5796 val* var12 /* : AListExprs */;
5797 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5798 val* var13 /* : ACallExpr */;
5799 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5800 long var14 /* : Int */;
5801 long var15 /* : Int */;
5802 var_p = p0;
5803 var = NULL;
5804 var_node_list = var;
5805 {
5806 var1 = parser_work__Parser__pop(var_p);
5807 }
5808 var_nodearraylist6 = var1;
5809 {
5810 var2 = parser_work__Parser__pop(var_p);
5811 }
5812 var_nodearraylist5 = var2;
5813 {
5814 var3 = parser_work__Parser__pop(var_p);
5815 }
5816 var_nodearraylist4 = var3;
5817 {
5818 var4 = parser_work__Parser__pop(var_p);
5819 }
5820 var_nodearraylist3 = var4;
5821 {
5822 var5 = parser_work__Parser__pop(var_p);
5823 }
5824 var_nodearraylist2 = var5;
5825 {
5826 var6 = parser_work__Parser__pop(var_p);
5827 }
5828 var_nodearraylist1 = var6;
5829 var_pexprnode2 = var_nodearraylist1;
5830 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5831 cltype = type_nullable_parser_nodes__AExpr.color;
5832 idtype = type_nullable_parser_nodes__AExpr.id;
5833 if(var_pexprnode2 == NULL) {
5834 var7 = 1;
5835 } else {
5836 if(cltype >= var_pexprnode2->type->table_size) {
5837 var7 = 0;
5838 } else {
5839 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
5840 }
5841 }
5842 if (unlikely(!var7)) {
5843 PRINT_ERROR("Runtime error: %s", "Assert failed");
5844 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8336);
5845 show_backtrace(1);
5846 }
5847 var_tidnode3 = var_nodearraylist6;
5848 /* <var_tidnode3:nullable Object> isa nullable TId */
5849 cltype9 = type_nullable_parser_nodes__TId.color;
5850 idtype10 = type_nullable_parser_nodes__TId.id;
5851 if(var_tidnode3 == NULL) {
5852 var8 = 1;
5853 } else {
5854 if(cltype9 >= var_tidnode3->type->table_size) {
5855 var8 = 0;
5856 } else {
5857 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
5858 }
5859 }
5860 if (unlikely(!var8)) {
5861 PRINT_ERROR("Runtime error: %s", "Assert failed");
5862 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8338);
5863 show_backtrace(1);
5864 }
5865 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
5866 {
5867 ((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on <var11:Array[Object]>*/;
5868 }
5869 var_listnode5 = var11;
5870 var12 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
5871 {
5872 parser_prod__AListExprs__init_alistexprs(var12, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var12:AListExprs>*/
5873 }
5874 var_pexprsnode4 = var12;
5875 var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
5876 {
5877 parser_prod__ACallExpr__init_acallexpr(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var13:ACallExpr>*/
5878 }
5879 var_pexprnode1 = var13;
5880 var_node_list = var_pexprnode1;
5881 var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction314> */
5882 {
5883 var15 = parser_work__Parser__go_to(var_p, var14);
5884 }
5885 {
5886 parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5887 }
5888 RET_LABEL:;
5889 }
5890 /* method parser#ReduceAction314#action for (self: Object, Parser) */
5891 void VIRTUAL_parser__ReduceAction314__action(val* self, val* p0) {
5892 parser__ReduceAction314__action(self, p0); /* Direct call parser#ReduceAction314#action on <self:Object(ReduceAction314)>*/
5893 RET_LABEL:;
5894 }
5895 /* method parser#ReduceAction318#action for (self: ReduceAction318, Parser) */
5896 void parser__ReduceAction318__action(val* self, val* p0) {
5897 val* var_p /* var p: Parser */;
5898 val* var /* : null */;
5899 val* var_node_list /* var node_list: nullable Object */;
5900 val* var1 /* : nullable Object */;
5901 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5902 val* var2 /* : AImplicitSelfExpr */;
5903 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5904 val* var_tidnode3 /* var tidnode3: nullable Object */;
5905 short int var4 /* : Bool */;
5906 int cltype;
5907 int idtype;
5908 val* var5 /* : Array[Object] */;
5909 val* var_listnode5 /* var listnode5: Array[Object] */;
5910 val* var6 /* : AListExprs */;
5911 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5912 val* var7 /* : ACallExpr */;
5913 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5914 long var8 /* : Int */;
5915 long var9 /* : Int */;
5916 var_p = p0;
5917 var = NULL;
5918 var_node_list = var;
5919 {
5920 var1 = parser_work__Parser__pop(var_p);
5921 }
5922 var_nodearraylist1 = var1;
5923 var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5924 {
5925 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var2) on <var2:AImplicitSelfExpr> */
5926 RET_LABEL3:(void)0;
5927 }
5928 }
5929 var_pexprnode2 = var2;
5930 var_tidnode3 = var_nodearraylist1;
5931 /* <var_tidnode3:nullable Object> isa nullable TId */
5932 cltype = type_nullable_parser_nodes__TId.color;
5933 idtype = type_nullable_parser_nodes__TId.id;
5934 if(var_tidnode3 == NULL) {
5935 var4 = 1;
5936 } else {
5937 if(cltype >= var_tidnode3->type->table_size) {
5938 var4 = 0;
5939 } else {
5940 var4 = var_tidnode3->type->type_table[cltype] == idtype;
5941 }
5942 }
5943 if (unlikely(!var4)) {
5944 PRINT_ERROR("Runtime error: %s", "Assert failed");
5945 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8360);
5946 show_backtrace(1);
5947 }
5948 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5949 {
5950 ((void (*)(val*))(var5->class->vft[COLOR_kernel__Object__init]))(var5) /* init on <var5:Array[Object]>*/;
5951 }
5952 var_listnode5 = var5;
5953 var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
5954 {
5955 parser_prod__AListExprs__init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var6:AListExprs>*/
5956 }
5957 var_pexprsnode4 = var6;
5958 var7 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
5959 {
5960 parser_prod__ACallExpr__init_acallexpr(var7, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var7:ACallExpr>*/
5961 }
5962 var_pexprnode1 = var7;
5963 var_node_list = var_pexprnode1;
5964 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction318> */
5965 {
5966 var9 = parser_work__Parser__go_to(var_p, var8);
5967 }
5968 {
5969 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5970 }
5971 RET_LABEL:;
5972 }
5973 /* method parser#ReduceAction318#action for (self: Object, Parser) */
5974 void VIRTUAL_parser__ReduceAction318__action(val* self, val* p0) {
5975 parser__ReduceAction318__action(self, p0); /* Direct call parser#ReduceAction318#action on <self:Object(ReduceAction318)>*/
5976 RET_LABEL:;
5977 }
5978 /* method parser#ReduceAction320#action for (self: ReduceAction320, Parser) */
5979 void parser__ReduceAction320__action(val* self, val* p0) {
5980 val* var_p /* var p: Parser */;
5981 val* var /* : null */;
5982 val* var_node_list /* var node_list: nullable Object */;
5983 val* var1 /* : nullable Object */;
5984 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5985 val* var2 /* : nullable Object */;
5986 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5987 val* var3 /* : AImplicitSelfExpr */;
5988 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5989 val* var_tidnode3 /* var tidnode3: nullable Object */;
5990 short int var5 /* : Bool */;
5991 int cltype;
5992 int idtype;
5993 val* var6 /* : Array[Object] */;
5994 val* var_listnode5 /* var listnode5: Array[Object] */;
5995 val* var7 /* : AListExprs */;
5996 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
5997 val* var8 /* : ACallExpr */;
5998 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5999 long var9 /* : Int */;
6000 long var10 /* : Int */;
6001 var_p = p0;
6002 var = NULL;
6003 var_node_list = var;
6004 {
6005 var1 = parser_work__Parser__pop(var_p);
6006 }
6007 var_nodearraylist2 = var1;
6008 {
6009 var2 = parser_work__Parser__pop(var_p);
6010 }
6011 var_nodearraylist1 = var2;
6012 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6013 {
6014 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var3) on <var3:AImplicitSelfExpr> */
6015 RET_LABEL4:(void)0;
6016 }
6017 }
6018 var_pexprnode2 = var3;
6019 var_tidnode3 = var_nodearraylist2;
6020 /* <var_tidnode3:nullable Object> isa nullable TId */
6021 cltype = type_nullable_parser_nodes__TId.color;
6022 idtype = type_nullable_parser_nodes__TId.id;
6023 if(var_tidnode3 == NULL) {
6024 var5 = 1;
6025 } else {
6026 if(cltype >= var_tidnode3->type->table_size) {
6027 var5 = 0;
6028 } else {
6029 var5 = var_tidnode3->type->type_table[cltype] == idtype;
6030 }
6031 }
6032 if (unlikely(!var5)) {
6033 PRINT_ERROR("Runtime error: %s", "Assert failed");
6034 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8383);
6035 show_backtrace(1);
6036 }
6037 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6038 {
6039 ((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on <var6:Array[Object]>*/;
6040 }
6041 var_listnode5 = var6;
6042 var7 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6043 {
6044 parser_prod__AListExprs__init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
6045 }
6046 var_pexprsnode4 = var7;
6047 var8 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
6048 {
6049 parser_prod__ACallExpr__init_acallexpr(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var8:ACallExpr>*/
6050 }
6051 var_pexprnode1 = var8;
6052 var_node_list = var_pexprnode1;
6053 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction320> */
6054 {
6055 var10 = parser_work__Parser__go_to(var_p, var9);
6056 }
6057 {
6058 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6059 }
6060 RET_LABEL:;
6061 }
6062 /* method parser#ReduceAction320#action for (self: Object, Parser) */
6063 void VIRTUAL_parser__ReduceAction320__action(val* self, val* p0) {
6064 parser__ReduceAction320__action(self, p0); /* Direct call parser#ReduceAction320#action on <self:Object(ReduceAction320)>*/
6065 RET_LABEL:;
6066 }
6067 /* method parser#ReduceAction322#action for (self: ReduceAction322, Parser) */
6068 void parser__ReduceAction322__action(val* self, val* p0) {
6069 val* var_p /* var p: Parser */;
6070 val* var /* : null */;
6071 val* var_node_list /* var node_list: nullable Object */;
6072 val* var1 /* : nullable Object */;
6073 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6074 val* var2 /* : nullable Object */;
6075 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6076 val* var3 /* : nullable Object */;
6077 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6078 val* var4 /* : AImplicitSelfExpr */;
6079 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
6080 val* var_tidnode3 /* var tidnode3: nullable Object */;
6081 short int var6 /* : Bool */;
6082 int cltype;
6083 int idtype;
6084 val* var7 /* : Array[Object] */;
6085 val* var_listnode5 /* var listnode5: Array[Object] */;
6086 val* var8 /* : AListExprs */;
6087 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6088 val* var9 /* : ACallExpr */;
6089 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
6090 long var10 /* : Int */;
6091 long var11 /* : Int */;
6092 var_p = p0;
6093 var = NULL;
6094 var_node_list = var;
6095 {
6096 var1 = parser_work__Parser__pop(var_p);
6097 }
6098 var_nodearraylist3 = var1;
6099 {
6100 var2 = parser_work__Parser__pop(var_p);
6101 }
6102 var_nodearraylist2 = var2;
6103 {
6104 var3 = parser_work__Parser__pop(var_p);
6105 }
6106 var_nodearraylist1 = var3;
6107 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6108 {
6109 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var4) on <var4:AImplicitSelfExpr> */
6110 RET_LABEL5:(void)0;
6111 }
6112 }
6113 var_pexprnode2 = var4;
6114 var_tidnode3 = var_nodearraylist3;
6115 /* <var_tidnode3:nullable Object> isa nullable TId */
6116 cltype = type_nullable_parser_nodes__TId.color;
6117 idtype = type_nullable_parser_nodes__TId.id;
6118 if(var_tidnode3 == NULL) {
6119 var6 = 1;
6120 } else {
6121 if(cltype >= var_tidnode3->type->table_size) {
6122 var6 = 0;
6123 } else {
6124 var6 = var_tidnode3->type->type_table[cltype] == idtype;
6125 }
6126 }
6127 if (unlikely(!var6)) {
6128 PRINT_ERROR("Runtime error: %s", "Assert failed");
6129 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8407);
6130 show_backtrace(1);
6131 }
6132 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6133 {
6134 ((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Array[Object]>*/;
6135 }
6136 var_listnode5 = var7;
6137 var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6138 {
6139 parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
6140 }
6141 var_pexprsnode4 = var8;
6142 var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
6143 {
6144 parser_prod__ACallExpr__init_acallexpr(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var9:ACallExpr>*/
6145 }
6146 var_pexprnode1 = var9;
6147 var_node_list = var_pexprnode1;
6148 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction322> */
6149 {
6150 var11 = parser_work__Parser__go_to(var_p, var10);
6151 }
6152 {
6153 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6154 }
6155 RET_LABEL:;
6156 }
6157 /* method parser#ReduceAction322#action for (self: Object, Parser) */
6158 void VIRTUAL_parser__ReduceAction322__action(val* self, val* p0) {
6159 parser__ReduceAction322__action(self, p0); /* Direct call parser#ReduceAction322#action on <self:Object(ReduceAction322)>*/
6160 RET_LABEL:;
6161 }
6162 /* method parser#ReduceAction326#action for (self: ReduceAction326, Parser) */
6163 void parser__ReduceAction326__action(val* self, val* p0) {
6164 val* var_p /* var p: Parser */;
6165 val* var /* : null */;
6166 val* var_node_list /* var node_list: nullable Object */;
6167 val* var1 /* : nullable Object */;
6168 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6169 val* var2 /* : nullable Object */;
6170 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6171 val* var_pqualifiednode2 /* var pqualifiednode2: nullable Object */;
6172 short int var3 /* : Bool */;
6173 int cltype;
6174 int idtype;
6175 val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
6176 short int var4 /* : Bool */;
6177 int cltype5;
6178 int idtype6;
6179 val* var7 /* : Array[Object] */;
6180 val* var_listnode5 /* var listnode5: Array[Object] */;
6181 val* var8 /* : AListExprs */;
6182 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6183 val* var9 /* : ASuperExpr */;
6184 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
6185 long var10 /* : Int */;
6186 long var11 /* : Int */;
6187 var_p = p0;
6188 var = NULL;
6189 var_node_list = var;
6190 {
6191 var1 = parser_work__Parser__pop(var_p);
6192 }
6193 var_nodearraylist2 = var1;
6194 {
6195 var2 = parser_work__Parser__pop(var_p);
6196 }
6197 var_nodearraylist1 = var2;
6198 var_pqualifiednode2 = var_nodearraylist1;
6199 /* <var_pqualifiednode2:nullable Object> isa nullable AQualified */
6200 cltype = type_nullable_parser_nodes__AQualified.color;
6201 idtype = type_nullable_parser_nodes__AQualified.id;
6202 if(var_pqualifiednode2 == NULL) {
6203 var3 = 1;
6204 } else {
6205 if(cltype >= var_pqualifiednode2->type->table_size) {
6206 var3 = 0;
6207 } else {
6208 var3 = var_pqualifiednode2->type->type_table[cltype] == idtype;
6209 }
6210 }
6211 if (unlikely(!var3)) {
6212 PRINT_ERROR("Runtime error: %s", "Assert failed");
6213 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8429);
6214 show_backtrace(1);
6215 }
6216 var_tkwsupernode3 = var_nodearraylist2;
6217 /* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
6218 cltype5 = type_nullable_parser_nodes__TKwsuper.color;
6219 idtype6 = type_nullable_parser_nodes__TKwsuper.id;
6220 if(var_tkwsupernode3 == NULL) {
6221 var4 = 1;
6222 } else {
6223 if(cltype5 >= var_tkwsupernode3->type->table_size) {
6224 var4 = 0;
6225 } else {
6226 var4 = var_tkwsupernode3->type->type_table[cltype5] == idtype6;
6227 }
6228 }
6229 if (unlikely(!var4)) {
6230 PRINT_ERROR("Runtime error: %s", "Assert failed");
6231 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8431);
6232 show_backtrace(1);
6233 }
6234 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6235 {
6236 ((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on <var7:Array[Object]>*/;
6237 }
6238 var_listnode5 = var7;
6239 var8 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6240 {
6241 parser_prod__AListExprs__init_alistexprs(var8, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
6242 }
6243 var_pexprsnode4 = var8;
6244 var9 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
6245 {
6246 parser_prod__ASuperExpr__init_asuperexpr(var9, var_pqualifiednode2, var_tkwsupernode3, var_pexprsnode4); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on <var9:ASuperExpr>*/
6247 }
6248 var_pexprnode1 = var9;
6249 var_node_list = var_pexprnode1;
6250 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction326> */
6251 {
6252 var11 = parser_work__Parser__go_to(var_p, var10);
6253 }
6254 {
6255 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6256 }
6257 RET_LABEL:;
6258 }
6259 /* method parser#ReduceAction326#action for (self: Object, Parser) */
6260 void VIRTUAL_parser__ReduceAction326__action(val* self, val* p0) {
6261 parser__ReduceAction326__action(self, p0); /* Direct call parser#ReduceAction326#action on <self:Object(ReduceAction326)>*/
6262 RET_LABEL:;
6263 }
6264 /* method parser#ReduceAction328#action for (self: ReduceAction328, Parser) */
6265 void parser__ReduceAction328__action(val* self, val* p0) {
6266 val* var_p /* var p: Parser */;
6267 val* var /* : null */;
6268 val* var_node_list /* var node_list: nullable Object */;
6269 val* var1 /* : nullable Object */;
6270 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6271 val* var2 /* : nullable Object */;
6272 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6273 val* var3 /* : nullable Object */;
6274 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6275 val* var4 /* : nullable Object */;
6276 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6277 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6278 short int var5 /* : Bool */;
6279 int cltype;
6280 int idtype;
6281 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6282 short int var6 /* : Bool */;
6283 int cltype7;
6284 int idtype8;
6285 val* var9 /* : Array[Object] */;
6286 val* var_listnode5 /* var listnode5: Array[Object] */;
6287 val* var10 /* : AListExprs */;
6288 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6289 val* var11 /* : AInitExpr */;
6290 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6291 long var12 /* : Int */;
6292 long var13 /* : Int */;
6293 var_p = p0;
6294 var = NULL;
6295 var_node_list = var;
6296 {
6297 var1 = parser_work__Parser__pop(var_p);
6298 }
6299 var_nodearraylist4 = var1;
6300 {
6301 var2 = parser_work__Parser__pop(var_p);
6302 }
6303 var_nodearraylist3 = var2;
6304 {
6305 var3 = parser_work__Parser__pop(var_p);
6306 }
6307 var_nodearraylist2 = var3;
6308 {
6309 var4 = parser_work__Parser__pop(var_p);
6310 }
6311 var_nodearraylist1 = var4;
6312 var_pexprnode2 = var_nodearraylist1;
6313 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6314 cltype = type_nullable_parser_nodes__AExpr.color;
6315 idtype = type_nullable_parser_nodes__AExpr.id;
6316 if(var_pexprnode2 == NULL) {
6317 var5 = 1;
6318 } else {
6319 if(cltype >= var_pexprnode2->type->table_size) {
6320 var5 = 0;
6321 } else {
6322 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
6323 }
6324 }
6325 if (unlikely(!var5)) {
6326 PRINT_ERROR("Runtime error: %s", "Assert failed");
6327 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8455);
6328 show_backtrace(1);
6329 }
6330 var_tkwinitnode3 = var_nodearraylist4;
6331 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6332 cltype7 = type_nullable_parser_nodes__TKwinit.color;
6333 idtype8 = type_nullable_parser_nodes__TKwinit.id;
6334 if(var_tkwinitnode3 == NULL) {
6335 var6 = 1;
6336 } else {
6337 if(cltype7 >= var_tkwinitnode3->type->table_size) {
6338 var6 = 0;
6339 } else {
6340 var6 = var_tkwinitnode3->type->type_table[cltype7] == idtype8;
6341 }
6342 }
6343 if (unlikely(!var6)) {
6344 PRINT_ERROR("Runtime error: %s", "Assert failed");
6345 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8457);
6346 show_backtrace(1);
6347 }
6348 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
6349 {
6350 ((void (*)(val*))(var9->class->vft[COLOR_kernel__Object__init]))(var9) /* init on <var9:Array[Object]>*/;
6351 }
6352 var_listnode5 = var9;
6353 var10 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6354 {
6355 parser_prod__AListExprs__init_alistexprs(var10, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var10:AListExprs>*/
6356 }
6357 var_pexprsnode4 = var10;
6358 var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
6359 {
6360 parser_prod__AInitExpr__init_ainitexpr(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var11:AInitExpr>*/
6361 }
6362 var_pexprnode1 = var11;
6363 var_node_list = var_pexprnode1;
6364 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction328> */
6365 {
6366 var13 = parser_work__Parser__go_to(var_p, var12);
6367 }
6368 {
6369 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6370 }
6371 RET_LABEL:;
6372 }
6373 /* method parser#ReduceAction328#action for (self: Object, Parser) */
6374 void VIRTUAL_parser__ReduceAction328__action(val* self, val* p0) {
6375 parser__ReduceAction328__action(self, p0); /* Direct call parser#ReduceAction328#action on <self:Object(ReduceAction328)>*/
6376 RET_LABEL:;
6377 }
6378 /* method parser#ReduceAction330#action for (self: ReduceAction330, Parser) */
6379 void parser__ReduceAction330__action(val* self, val* p0) {
6380 val* var_p /* var p: Parser */;
6381 val* var /* : null */;
6382 val* var_node_list /* var node_list: nullable Object */;
6383 val* var1 /* : nullable Object */;
6384 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6385 val* var2 /* : AImplicitSelfExpr */;
6386 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
6387 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6388 short int var4 /* : Bool */;
6389 int cltype;
6390 int idtype;
6391 val* var5 /* : Array[Object] */;
6392 val* var_listnode5 /* var listnode5: Array[Object] */;
6393 val* var6 /* : AListExprs */;
6394 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6395 val* var7 /* : AInitExpr */;
6396 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6397 long var8 /* : Int */;
6398 long var9 /* : Int */;
6399 var_p = p0;
6400 var = NULL;
6401 var_node_list = var;
6402 {
6403 var1 = parser_work__Parser__pop(var_p);
6404 }
6405 var_nodearraylist1 = var1;
6406 var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6407 {
6408 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var2) on <var2:AImplicitSelfExpr> */
6409 RET_LABEL3:(void)0;
6410 }
6411 }
6412 var_pexprnode2 = var2;
6413 var_tkwinitnode3 = var_nodearraylist1;
6414 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6415 cltype = type_nullable_parser_nodes__TKwinit.color;
6416 idtype = type_nullable_parser_nodes__TKwinit.id;
6417 if(var_tkwinitnode3 == NULL) {
6418 var4 = 1;
6419 } else {
6420 if(cltype >= var_tkwinitnode3->type->table_size) {
6421 var4 = 0;
6422 } else {
6423 var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
6424 }
6425 }
6426 if (unlikely(!var4)) {
6427 PRINT_ERROR("Runtime error: %s", "Assert failed");
6428 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8479);
6429 show_backtrace(1);
6430 }
6431 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6432 {
6433 ((void (*)(val*))(var5->class->vft[COLOR_kernel__Object__init]))(var5) /* init on <var5:Array[Object]>*/;
6434 }
6435 var_listnode5 = var5;
6436 var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6437 {
6438 parser_prod__AListExprs__init_alistexprs(var6, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var6:AListExprs>*/
6439 }
6440 var_pexprsnode4 = var6;
6441 var7 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
6442 {
6443 parser_prod__AInitExpr__init_ainitexpr(var7, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var7:AInitExpr>*/
6444 }
6445 var_pexprnode1 = var7;
6446 var_node_list = var_pexprnode1;
6447 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction330> */
6448 {
6449 var9 = parser_work__Parser__go_to(var_p, var8);
6450 }
6451 {
6452 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6453 }
6454 RET_LABEL:;
6455 }
6456 /* method parser#ReduceAction330#action for (self: Object, Parser) */
6457 void VIRTUAL_parser__ReduceAction330__action(val* self, val* p0) {
6458 parser__ReduceAction330__action(self, p0); /* Direct call parser#ReduceAction330#action on <self:Object(ReduceAction330)>*/
6459 RET_LABEL:;
6460 }
6461 /* method parser#ReduceAction331#action for (self: ReduceAction331, Parser) */
6462 void parser__ReduceAction331__action(val* self, val* p0) {
6463 val* var_p /* var p: Parser */;
6464 val* var /* : null */;
6465 val* var_node_list /* var node_list: nullable Object */;
6466 val* var1 /* : nullable Object */;
6467 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6468 val* var2 /* : nullable Object */;
6469 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6470 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6471 short int var3 /* : Bool */;
6472 int cltype;
6473 int idtype;
6474 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
6475 short int var4 /* : Bool */;
6476 int cltype5;
6477 int idtype6;
6478 val* var7 /* : ABraExpr */;
6479 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
6480 long var8 /* : Int */;
6481 long var9 /* : Int */;
6482 var_p = p0;
6483 var = NULL;
6484 var_node_list = var;
6485 {
6486 var1 = parser_work__Parser__pop(var_p);
6487 }
6488 var_nodearraylist2 = var1;
6489 {
6490 var2 = parser_work__Parser__pop(var_p);
6491 }
6492 var_nodearraylist1 = var2;
6493 var_pexprnode2 = var_nodearraylist1;
6494 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6495 cltype = type_nullable_parser_nodes__AExpr.color;
6496 idtype = type_nullable_parser_nodes__AExpr.id;
6497 if(var_pexprnode2 == NULL) {
6498 var3 = 1;
6499 } else {
6500 if(cltype >= var_pexprnode2->type->table_size) {
6501 var3 = 0;
6502 } else {
6503 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
6504 }
6505 }
6506 if (unlikely(!var3)) {
6507 PRINT_ERROR("Runtime error: %s", "Assert failed");
6508 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8501);
6509 show_backtrace(1);
6510 }
6511 var_pexprsnode3 = var_nodearraylist2;
6512 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
6513 cltype5 = type_nullable_parser_nodes__AExprs.color;
6514 idtype6 = type_nullable_parser_nodes__AExprs.id;
6515 if(var_pexprsnode3 == NULL) {
6516 var4 = 1;
6517 } else {
6518 if(cltype5 >= var_pexprsnode3->type->table_size) {
6519 var4 = 0;
6520 } else {
6521 var4 = var_pexprsnode3->type->type_table[cltype5] == idtype6;
6522 }
6523 }
6524 if (unlikely(!var4)) {
6525 PRINT_ERROR("Runtime error: %s", "Assert failed");
6526 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8503);
6527 show_backtrace(1);
6528 }
6529 var7 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
6530 {
6531 parser_prod__ABraExpr__init_abraexpr(var7, var_pexprnode2, var_pexprsnode3); /* Direct call parser_prod#ABraExpr#init_abraexpr on <var7:ABraExpr>*/
6532 }
6533 var_pexprnode1 = var7;
6534 var_node_list = var_pexprnode1;
6535 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction331> */
6536 {
6537 var9 = parser_work__Parser__go_to(var_p, var8);
6538 }
6539 {
6540 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6541 }
6542 RET_LABEL:;
6543 }
6544 /* method parser#ReduceAction331#action for (self: Object, Parser) */
6545 void VIRTUAL_parser__ReduceAction331__action(val* self, val* p0) {
6546 parser__ReduceAction331__action(self, p0); /* Direct call parser#ReduceAction331#action on <self:Object(ReduceAction331)>*/
6547 RET_LABEL:;
6548 }
6549 /* method parser#ReduceAction332#action for (self: ReduceAction332, Parser) */
6550 void parser__ReduceAction332__action(val* self, val* p0) {
6551 val* var_p /* var p: Parser */;
6552 val* var /* : null */;
6553 val* var_node_list /* var node_list: nullable Object */;
6554 val* var1 /* : nullable Object */;
6555 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6556 val* var2 /* : nullable Object */;
6557 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6558 val* var3 /* : nullable Object */;
6559 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6560 val* var4 /* : nullable Object */;
6561 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6562 val* var5 /* : nullable Object */;
6563 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6564 val* var6 /* : nullable Object */;
6565 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6566 val* var7 /* : nullable Object */;
6567 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6568 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6569 short int var8 /* : Bool */;
6570 int cltype;
6571 int idtype;
6572 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6573 short int var9 /* : Bool */;
6574 int cltype10;
6575 int idtype11;
6576 val* var_tidnode4 /* var tidnode4: nullable Object */;
6577 short int var12 /* : Bool */;
6578 int cltype13;
6579 int idtype14;
6580 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
6581 short int var15 /* : Bool */;
6582 int cltype16;
6583 int idtype17;
6584 val* var18 /* : ANewExpr */;
6585 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6586 long var19 /* : Int */;
6587 long var20 /* : Int */;
6588 var_p = p0;
6589 var = NULL;
6590 var_node_list = var;
6591 {
6592 var1 = parser_work__Parser__pop(var_p);
6593 }
6594 var_nodearraylist7 = var1;
6595 {
6596 var2 = parser_work__Parser__pop(var_p);
6597 }
6598 var_nodearraylist6 = var2;
6599 {
6600 var3 = parser_work__Parser__pop(var_p);
6601 }
6602 var_nodearraylist5 = var3;
6603 {
6604 var4 = parser_work__Parser__pop(var_p);
6605 }
6606 var_nodearraylist4 = var4;
6607 {
6608 var5 = parser_work__Parser__pop(var_p);
6609 }
6610 var_nodearraylist3 = var5;
6611 {
6612 var6 = parser_work__Parser__pop(var_p);
6613 }
6614 var_nodearraylist2 = var6;
6615 {
6616 var7 = parser_work__Parser__pop(var_p);
6617 }
6618 var_nodearraylist1 = var7;
6619 var_tkwnewnode2 = var_nodearraylist1;
6620 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6621 cltype = type_nullable_parser_nodes__TKwnew.color;
6622 idtype = type_nullable_parser_nodes__TKwnew.id;
6623 if(var_tkwnewnode2 == NULL) {
6624 var8 = 1;
6625 } else {
6626 if(cltype >= var_tkwnewnode2->type->table_size) {
6627 var8 = 0;
6628 } else {
6629 var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
6630 }
6631 }
6632 if (unlikely(!var8)) {
6633 PRINT_ERROR("Runtime error: %s", "Assert failed");
6634 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8525);
6635 show_backtrace(1);
6636 }
6637 var_ptypenode3 = var_nodearraylist3;
6638 /* <var_ptypenode3:nullable Object> isa nullable AType */
6639 cltype10 = type_nullable_parser_nodes__AType.color;
6640 idtype11 = type_nullable_parser_nodes__AType.id;
6641 if(var_ptypenode3 == NULL) {
6642 var9 = 1;
6643 } else {
6644 if(cltype10 >= var_ptypenode3->type->table_size) {
6645 var9 = 0;
6646 } else {
6647 var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
6648 }
6649 }
6650 if (unlikely(!var9)) {
6651 PRINT_ERROR("Runtime error: %s", "Assert failed");
6652 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8527);
6653 show_backtrace(1);
6654 }
6655 var_tidnode4 = var_nodearraylist6;
6656 /* <var_tidnode4:nullable Object> isa nullable TId */
6657 cltype13 = type_nullable_parser_nodes__TId.color;
6658 idtype14 = type_nullable_parser_nodes__TId.id;
6659 if(var_tidnode4 == NULL) {
6660 var12 = 1;
6661 } else {
6662 if(cltype13 >= var_tidnode4->type->table_size) {
6663 var12 = 0;
6664 } else {
6665 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
6666 }
6667 }
6668 if (unlikely(!var12)) {
6669 PRINT_ERROR("Runtime error: %s", "Assert failed");
6670 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8529);
6671 show_backtrace(1);
6672 }
6673 var_pexprsnode5 = var_nodearraylist7;
6674 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
6675 cltype16 = type_nullable_parser_nodes__AExprs.color;
6676 idtype17 = type_nullable_parser_nodes__AExprs.id;
6677 if(var_pexprsnode5 == NULL) {
6678 var15 = 1;
6679 } else {
6680 if(cltype16 >= var_pexprsnode5->type->table_size) {
6681 var15 = 0;
6682 } else {
6683 var15 = var_pexprsnode5->type->type_table[cltype16] == idtype17;
6684 }
6685 }
6686 if (unlikely(!var15)) {
6687 PRINT_ERROR("Runtime error: %s", "Assert failed");
6688 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8531);
6689 show_backtrace(1);
6690 }
6691 var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
6692 {
6693 parser_prod__ANewExpr__init_anewexpr(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var18:ANewExpr>*/
6694 }
6695 var_pexprnode1 = var18;
6696 var_node_list = var_pexprnode1;
6697 var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction332> */
6698 {
6699 var20 = parser_work__Parser__go_to(var_p, var19);
6700 }
6701 {
6702 parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6703 }
6704 RET_LABEL:;
6705 }
6706 /* method parser#ReduceAction332#action for (self: Object, Parser) */
6707 void VIRTUAL_parser__ReduceAction332__action(val* self, val* p0) {
6708 parser__ReduceAction332__action(self, p0); /* Direct call parser#ReduceAction332#action on <self:Object(ReduceAction332)>*/
6709 RET_LABEL:;
6710 }
6711 /* method parser#ReduceAction333#action for (self: ReduceAction333, Parser) */
6712 void parser__ReduceAction333__action(val* self, val* p0) {
6713 val* var_p /* var p: Parser */;
6714 val* var /* : null */;
6715 val* var_node_list /* var node_list: nullable Object */;
6716 val* var1 /* : nullable Object */;
6717 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6718 val* var2 /* : nullable Object */;
6719 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6720 val* var3 /* : nullable Object */;
6721 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6722 val* var4 /* : nullable Object */;
6723 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6724 val* var5 /* : nullable Object */;
6725 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6726 val* var6 /* : nullable Object */;
6727 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6728 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6729 short int var7 /* : Bool */;
6730 int cltype;
6731 int idtype;
6732 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6733 short int var8 /* : Bool */;
6734 int cltype9;
6735 int idtype10;
6736 val* var_tidnode4 /* var tidnode4: nullable Object */;
6737 short int var11 /* : Bool */;
6738 int cltype12;
6739 int idtype13;
6740 val* var14 /* : Array[Object] */;
6741 val* var_listnode6 /* var listnode6: Array[Object] */;
6742 val* var15 /* : AListExprs */;
6743 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
6744 val* var16 /* : ANewExpr */;
6745 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6746 long var17 /* : Int */;
6747 long var18 /* : Int */;
6748 var_p = p0;
6749 var = NULL;
6750 var_node_list = var;
6751 {
6752 var1 = parser_work__Parser__pop(var_p);
6753 }
6754 var_nodearraylist6 = var1;
6755 {
6756 var2 = parser_work__Parser__pop(var_p);
6757 }
6758 var_nodearraylist5 = var2;
6759 {
6760 var3 = parser_work__Parser__pop(var_p);
6761 }
6762 var_nodearraylist4 = var3;
6763 {
6764 var4 = parser_work__Parser__pop(var_p);
6765 }
6766 var_nodearraylist3 = var4;
6767 {
6768 var5 = parser_work__Parser__pop(var_p);
6769 }
6770 var_nodearraylist2 = var5;
6771 {
6772 var6 = parser_work__Parser__pop(var_p);
6773 }
6774 var_nodearraylist1 = var6;
6775 var_tkwnewnode2 = var_nodearraylist1;
6776 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6777 cltype = type_nullable_parser_nodes__TKwnew.color;
6778 idtype = type_nullable_parser_nodes__TKwnew.id;
6779 if(var_tkwnewnode2 == NULL) {
6780 var7 = 1;
6781 } else {
6782 if(cltype >= var_tkwnewnode2->type->table_size) {
6783 var7 = 0;
6784 } else {
6785 var7 = var_tkwnewnode2->type->type_table[cltype] == idtype;
6786 }
6787 }
6788 if (unlikely(!var7)) {
6789 PRINT_ERROR("Runtime error: %s", "Assert failed");
6790 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8554);
6791 show_backtrace(1);
6792 }
6793 var_ptypenode3 = var_nodearraylist3;
6794 /* <var_ptypenode3:nullable Object> isa nullable AType */
6795 cltype9 = type_nullable_parser_nodes__AType.color;
6796 idtype10 = type_nullable_parser_nodes__AType.id;
6797 if(var_ptypenode3 == NULL) {
6798 var8 = 1;
6799 } else {
6800 if(cltype9 >= var_ptypenode3->type->table_size) {
6801 var8 = 0;
6802 } else {
6803 var8 = var_ptypenode3->type->type_table[cltype9] == idtype10;
6804 }
6805 }
6806 if (unlikely(!var8)) {
6807 PRINT_ERROR("Runtime error: %s", "Assert failed");
6808 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8556);
6809 show_backtrace(1);
6810 }
6811 var_tidnode4 = var_nodearraylist6;
6812 /* <var_tidnode4:nullable Object> isa nullable TId */
6813 cltype12 = type_nullable_parser_nodes__TId.color;
6814 idtype13 = type_nullable_parser_nodes__TId.id;
6815 if(var_tidnode4 == NULL) {
6816 var11 = 1;
6817 } else {
6818 if(cltype12 >= var_tidnode4->type->table_size) {
6819 var11 = 0;
6820 } else {
6821 var11 = var_tidnode4->type->type_table[cltype12] == idtype13;
6822 }
6823 }
6824 if (unlikely(!var11)) {
6825 PRINT_ERROR("Runtime error: %s", "Assert failed");
6826 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8558);
6827 show_backtrace(1);
6828 }
6829 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
6830 {
6831 ((void (*)(val*))(var14->class->vft[COLOR_kernel__Object__init]))(var14) /* init on <var14:Array[Object]>*/;
6832 }
6833 var_listnode6 = var14;
6834 var15 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6835 {
6836 parser_prod__AListExprs__init_alistexprs(var15, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var15:AListExprs>*/
6837 }
6838 var_pexprsnode5 = var15;
6839 var16 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
6840 {
6841 parser_prod__ANewExpr__init_anewexpr(var16, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var16:ANewExpr>*/
6842 }
6843 var_pexprnode1 = var16;
6844 var_node_list = var_pexprnode1;
6845 var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction333> */
6846 {
6847 var18 = parser_work__Parser__go_to(var_p, var17);
6848 }
6849 {
6850 parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6851 }
6852 RET_LABEL:;
6853 }
6854 /* method parser#ReduceAction333#action for (self: Object, Parser) */
6855 void VIRTUAL_parser__ReduceAction333__action(val* self, val* p0) {
6856 parser__ReduceAction333__action(self, p0); /* Direct call parser#ReduceAction333#action on <self:Object(ReduceAction333)>*/
6857 RET_LABEL:;
6858 }
6859 /* method parser#ReduceAction334#action for (self: ReduceAction334, Parser) */
6860 void parser__ReduceAction334__action(val* self, val* p0) {
6861 val* var_p /* var p: Parser */;
6862 val* var /* : null */;
6863 val* var_node_list /* var node_list: nullable Object */;
6864 val* var1 /* : nullable Object */;
6865 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6866 val* var2 /* : nullable Object */;
6867 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6868 val* var3 /* : nullable Object */;
6869 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6870 val* var4 /* : nullable Object */;
6871 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6872 val* var5 /* : nullable Object */;
6873 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6874 val* var6 /* : nullable Object */;
6875 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6876 val* var7 /* : nullable Object */;
6877 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6878 val* var8 /* : nullable Object */;
6879 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6880 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
6881 short int var9 /* : Bool */;
6882 int cltype;
6883 int idtype;
6884 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6885 short int var10 /* : Bool */;
6886 int cltype11;
6887 int idtype12;
6888 val* var_tidnode4 /* var tidnode4: nullable Object */;
6889 short int var13 /* : Bool */;
6890 int cltype14;
6891 int idtype15;
6892 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
6893 short int var16 /* : Bool */;
6894 int cltype17;
6895 int idtype18;
6896 val* var19 /* : ANewExpr */;
6897 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
6898 long var20 /* : Int */;
6899 long var21 /* : Int */;
6900 var_p = p0;
6901 var = NULL;
6902 var_node_list = var;
6903 {
6904 var1 = parser_work__Parser__pop(var_p);
6905 }
6906 var_nodearraylist8 = var1;
6907 {
6908 var2 = parser_work__Parser__pop(var_p);
6909 }
6910 var_nodearraylist7 = var2;
6911 {
6912 var3 = parser_work__Parser__pop(var_p);
6913 }
6914 var_nodearraylist6 = var3;
6915 {
6916 var4 = parser_work__Parser__pop(var_p);
6917 }
6918 var_nodearraylist5 = var4;
6919 {
6920 var5 = parser_work__Parser__pop(var_p);
6921 }
6922 var_nodearraylist4 = var5;
6923 {
6924 var6 = parser_work__Parser__pop(var_p);
6925 }
6926 var_nodearraylist3 = var6;
6927 {
6928 var7 = parser_work__Parser__pop(var_p);
6929 }
6930 var_nodearraylist2 = var7;
6931 {
6932 var8 = parser_work__Parser__pop(var_p);
6933 }
6934 var_nodearraylist1 = var8;
6935 var_tkwnewnode2 = var_nodearraylist1;
6936 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
6937 cltype = type_nullable_parser_nodes__TKwnew.color;
6938 idtype = type_nullable_parser_nodes__TKwnew.id;
6939 if(var_tkwnewnode2 == NULL) {
6940 var9 = 1;
6941 } else {
6942 if(cltype >= var_tkwnewnode2->type->table_size) {
6943 var9 = 0;
6944 } else {
6945 var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
6946 }
6947 }
6948 if (unlikely(!var9)) {
6949 PRINT_ERROR("Runtime error: %s", "Assert failed");
6950 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8587);
6951 show_backtrace(1);
6952 }
6953 var_ptypenode3 = var_nodearraylist3;
6954 /* <var_ptypenode3:nullable Object> isa nullable AType */
6955 cltype11 = type_nullable_parser_nodes__AType.color;
6956 idtype12 = type_nullable_parser_nodes__AType.id;
6957 if(var_ptypenode3 == NULL) {
6958 var10 = 1;
6959 } else {
6960 if(cltype11 >= var_ptypenode3->type->table_size) {
6961 var10 = 0;
6962 } else {
6963 var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
6964 }
6965 }
6966 if (unlikely(!var10)) {
6967 PRINT_ERROR("Runtime error: %s", "Assert failed");
6968 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8589);
6969 show_backtrace(1);
6970 }
6971 var_tidnode4 = var_nodearraylist7;
6972 /* <var_tidnode4:nullable Object> isa nullable TId */
6973 cltype14 = type_nullable_parser_nodes__TId.color;
6974 idtype15 = type_nullable_parser_nodes__TId.id;
6975 if(var_tidnode4 == NULL) {
6976 var13 = 1;
6977 } else {
6978 if(cltype14 >= var_tidnode4->type->table_size) {
6979 var13 = 0;
6980 } else {
6981 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
6982 }
6983 }
6984 if (unlikely(!var13)) {
6985 PRINT_ERROR("Runtime error: %s", "Assert failed");
6986 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8591);
6987 show_backtrace(1);
6988 }
6989 var_pexprsnode5 = var_nodearraylist8;
6990 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
6991 cltype17 = type_nullable_parser_nodes__AExprs.color;
6992 idtype18 = type_nullable_parser_nodes__AExprs.id;
6993 if(var_pexprsnode5 == NULL) {
6994 var16 = 1;
6995 } else {
6996 if(cltype17 >= var_pexprsnode5->type->table_size) {
6997 var16 = 0;
6998 } else {
6999 var16 = var_pexprsnode5->type->type_table[cltype17] == idtype18;
7000 }
7001 }
7002 if (unlikely(!var16)) {
7003 PRINT_ERROR("Runtime error: %s", "Assert failed");
7004 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8593);
7005 show_backtrace(1);
7006 }
7007 var19 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
7008 {
7009 parser_prod__ANewExpr__init_anewexpr(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var19:ANewExpr>*/
7010 }
7011 var_pexprnode1 = var19;
7012 var_node_list = var_pexprnode1;
7013 var20 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction334> */
7014 {
7015 var21 = parser_work__Parser__go_to(var_p, var20);
7016 }
7017 {
7018 parser_work__Parser__push(var_p, var21, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7019 }
7020 RET_LABEL:;
7021 }
7022 /* method parser#ReduceAction334#action for (self: Object, Parser) */
7023 void VIRTUAL_parser__ReduceAction334__action(val* self, val* p0) {
7024 parser__ReduceAction334__action(self, p0); /* Direct call parser#ReduceAction334#action on <self:Object(ReduceAction334)>*/
7025 RET_LABEL:;
7026 }
7027 /* method parser#ReduceAction335#action for (self: ReduceAction335, Parser) */
7028 void parser__ReduceAction335__action(val* self, val* p0) {
7029 val* var_p /* var p: Parser */;
7030 val* var /* : null */;
7031 val* var_node_list /* var node_list: nullable Object */;
7032 val* var1 /* : nullable Object */;
7033 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7034 val* var2 /* : nullable Object */;
7035 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7036 val* var3 /* : nullable Object */;
7037 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7038 val* var4 /* : nullable Object */;
7039 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7040 val* var5 /* : nullable Object */;
7041 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7042 val* var6 /* : nullable Object */;
7043 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7044 val* var7 /* : nullable Object */;
7045 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7046 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
7047 short int var8 /* : Bool */;
7048 int cltype;
7049 int idtype;
7050 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
7051 short int var9 /* : Bool */;
7052 int cltype10;
7053 int idtype11;
7054 val* var_tidnode4 /* var tidnode4: nullable Object */;
7055 short int var12 /* : Bool */;
7056 int cltype13;
7057 int idtype14;
7058 val* var15 /* : Array[Object] */;
7059 val* var_listnode6 /* var listnode6: Array[Object] */;
7060 val* var16 /* : AListExprs */;
7061 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
7062 val* var17 /* : ANewExpr */;
7063 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
7064 long var18 /* : Int */;
7065 long var19 /* : Int */;
7066 var_p = p0;
7067 var = NULL;
7068 var_node_list = var;
7069 {
7070 var1 = parser_work__Parser__pop(var_p);
7071 }
7072 var_nodearraylist7 = var1;
7073 {
7074 var2 = parser_work__Parser__pop(var_p);
7075 }
7076 var_nodearraylist6 = var2;
7077 {
7078 var3 = parser_work__Parser__pop(var_p);
7079 }
7080 var_nodearraylist5 = var3;
7081 {
7082 var4 = parser_work__Parser__pop(var_p);
7083 }
7084 var_nodearraylist4 = var4;
7085 {
7086 var5 = parser_work__Parser__pop(var_p);
7087 }
7088 var_nodearraylist3 = var5;
7089 {
7090 var6 = parser_work__Parser__pop(var_p);
7091 }
7092 var_nodearraylist2 = var6;
7093 {
7094 var7 = parser_work__Parser__pop(var_p);
7095 }
7096 var_nodearraylist1 = var7;
7097 var_tkwnewnode2 = var_nodearraylist1;
7098 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
7099 cltype = type_nullable_parser_nodes__TKwnew.color;
7100 idtype = type_nullable_parser_nodes__TKwnew.id;
7101 if(var_tkwnewnode2 == NULL) {
7102 var8 = 1;
7103 } else {
7104 if(cltype >= var_tkwnewnode2->type->table_size) {
7105 var8 = 0;
7106 } else {
7107 var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
7108 }
7109 }
7110 if (unlikely(!var8)) {
7111 PRINT_ERROR("Runtime error: %s", "Assert failed");
7112 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8617);
7113 show_backtrace(1);
7114 }
7115 var_ptypenode3 = var_nodearraylist3;
7116 /* <var_ptypenode3:nullable Object> isa nullable AType */
7117 cltype10 = type_nullable_parser_nodes__AType.color;
7118 idtype11 = type_nullable_parser_nodes__AType.id;
7119 if(var_ptypenode3 == NULL) {
7120 var9 = 1;
7121 } else {
7122 if(cltype10 >= var_ptypenode3->type->table_size) {
7123 var9 = 0;
7124 } else {
7125 var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
7126 }
7127 }
7128 if (unlikely(!var9)) {
7129 PRINT_ERROR("Runtime error: %s", "Assert failed");
7130 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8619);
7131 show_backtrace(1);
7132 }
7133 var_tidnode4 = var_nodearraylist7;
7134 /* <var_tidnode4:nullable Object> isa nullable TId */
7135 cltype13 = type_nullable_parser_nodes__TId.color;
7136 idtype14 = type_nullable_parser_nodes__TId.id;
7137 if(var_tidnode4 == NULL) {
7138 var12 = 1;
7139 } else {
7140 if(cltype13 >= var_tidnode4->type->table_size) {
7141 var12 = 0;
7142 } else {
7143 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
7144 }
7145 }
7146 if (unlikely(!var12)) {
7147 PRINT_ERROR("Runtime error: %s", "Assert failed");
7148 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8621);
7149 show_backtrace(1);
7150 }
7151 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
7152 {
7153 ((void (*)(val*))(var15->class->vft[COLOR_kernel__Object__init]))(var15) /* init on <var15:Array[Object]>*/;
7154 }
7155 var_listnode6 = var15;
7156 var16 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
7157 {
7158 parser_prod__AListExprs__init_alistexprs(var16, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var16:AListExprs>*/
7159 }
7160 var_pexprsnode5 = var16;
7161 var17 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
7162 {
7163 parser_prod__ANewExpr__init_anewexpr(var17, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var17:ANewExpr>*/
7164 }
7165 var_pexprnode1 = var17;
7166 var_node_list = var_pexprnode1;
7167 var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction335> */
7168 {
7169 var19 = parser_work__Parser__go_to(var_p, var18);
7170 }
7171 {
7172 parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7173 }
7174 RET_LABEL:;
7175 }
7176 /* method parser#ReduceAction335#action for (self: Object, Parser) */
7177 void VIRTUAL_parser__ReduceAction335__action(val* self, val* p0) {
7178 parser__ReduceAction335__action(self, p0); /* Direct call parser#ReduceAction335#action on <self:Object(ReduceAction335)>*/
7179 RET_LABEL:;
7180 }
7181 /* method parser#ReduceAction336#action for (self: ReduceAction336, Parser) */
7182 void parser__ReduceAction336__action(val* self, val* p0) {
7183 val* var_p /* var p: Parser */;
7184 val* var /* : null */;
7185 val* var_node_list /* var node_list: nullable Object */;
7186 val* var1 /* : nullable Object */;
7187 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7188 val* var2 /* : nullable Object */;
7189 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7190 val* var3 /* : nullable Object */;
7191 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7192 val* var4 /* : nullable Object */;
7193 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7194 val* var5 /* : nullable Object */;
7195 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7196 val* var6 /* : nullable Object */;
7197 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7198 val* var7 /* : nullable Object */;
7199 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7200 val* var8 /* : nullable Object */;
7201 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7202 val* var9 /* : nullable Object */;
7203 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7204 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
7205 short int var10 /* : Bool */;
7206 int cltype;
7207 int idtype;
7208 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
7209 short int var11 /* : Bool */;
7210 int cltype12;
7211 int idtype13;
7212 val* var_tidnode4 /* var tidnode4: nullable Object */;
7213 short int var14 /* : Bool */;
7214 int cltype15;
7215 int idtype16;
7216 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
7217 short int var17 /* : Bool */;
7218 int cltype18;
7219 int idtype19;
7220 val* var20 /* : ANewExpr */;
7221 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
7222 long var21 /* : Int */;
7223 long var22 /* : Int */;
7224 var_p = p0;
7225 var = NULL;
7226 var_node_list = var;
7227 {
7228 var1 = parser_work__Parser__pop(var_p);
7229 }
7230 var_nodearraylist9 = var1;
7231 {
7232 var2 = parser_work__Parser__pop(var_p);
7233 }
7234 var_nodearraylist8 = var2;
7235 {
7236 var3 = parser_work__Parser__pop(var_p);
7237 }
7238 var_nodearraylist7 = var3;
7239 {
7240 var4 = parser_work__Parser__pop(var_p);
7241 }
7242 var_nodearraylist6 = var4;
7243 {
7244 var5 = parser_work__Parser__pop(var_p);
7245 }
7246 var_nodearraylist5 = var5;
7247 {
7248 var6 = parser_work__Parser__pop(var_p);
7249 }
7250 var_nodearraylist4 = var6;
7251 {
7252 var7 = parser_work__Parser__pop(var_p);
7253 }
7254 var_nodearraylist3 = var7;
7255 {
7256 var8 = parser_work__Parser__pop(var_p);
7257 }
7258 var_nodearraylist2 = var8;
7259 {
7260 var9 = parser_work__Parser__pop(var_p);
7261 }
7262 var_nodearraylist1 = var9;
7263 var_tkwnewnode2 = var_nodearraylist1;
7264 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
7265 cltype = type_nullable_parser_nodes__TKwnew.color;
7266 idtype = type_nullable_parser_nodes__TKwnew.id;
7267 if(var_tkwnewnode2 == NULL) {
7268 var10 = 1;
7269 } else {
7270 if(cltype >= var_tkwnewnode2->type->table_size) {
7271 var10 = 0;
7272 } else {
7273 var10 = var_tkwnewnode2->type->type_table[cltype] == idtype;
7274 }
7275 }
7276 if (unlikely(!var10)) {
7277 PRINT_ERROR("Runtime error: %s", "Assert failed");
7278 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8651);
7279 show_backtrace(1);
7280 }
7281 var_ptypenode3 = var_nodearraylist3;
7282 /* <var_ptypenode3:nullable Object> isa nullable AType */
7283 cltype12 = type_nullable_parser_nodes__AType.color;
7284 idtype13 = type_nullable_parser_nodes__AType.id;
7285 if(var_ptypenode3 == NULL) {
7286 var11 = 1;
7287 } else {
7288 if(cltype12 >= var_ptypenode3->type->table_size) {
7289 var11 = 0;
7290 } else {
7291 var11 = var_ptypenode3->type->type_table[cltype12] == idtype13;
7292 }
7293 }
7294 if (unlikely(!var11)) {
7295 PRINT_ERROR("Runtime error: %s", "Assert failed");
7296 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8653);
7297 show_backtrace(1);
7298 }
7299 var_tidnode4 = var_nodearraylist8;
7300 /* <var_tidnode4:nullable Object> isa nullable TId */
7301 cltype15 = type_nullable_parser_nodes__TId.color;
7302 idtype16 = type_nullable_parser_nodes__TId.id;
7303 if(var_tidnode4 == NULL) {
7304 var14 = 1;
7305 } else {
7306 if(cltype15 >= var_tidnode4->type->table_size) {
7307 var14 = 0;
7308 } else {
7309 var14 = var_tidnode4->type->type_table[cltype15] == idtype16;
7310 }
7311 }
7312 if (unlikely(!var14)) {
7313 PRINT_ERROR("Runtime error: %s", "Assert failed");
7314 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8655);
7315 show_backtrace(1);
7316 }
7317 var_pexprsnode5 = var_nodearraylist9;
7318 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
7319 cltype18 = type_nullable_parser_nodes__AExprs.color;
7320 idtype19 = type_nullable_parser_nodes__AExprs.id;
7321 if(var_pexprsnode5 == NULL) {
7322 var17 = 1;
7323 } else {
7324 if(cltype18 >= var_pexprsnode5->type->table_size) {
7325 var17 = 0;
7326 } else {
7327 var17 = var_pexprsnode5->type->type_table[cltype18] == idtype19;
7328 }
7329 }
7330 if (unlikely(!var17)) {
7331 PRINT_ERROR("Runtime error: %s", "Assert failed");
7332 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8657);
7333 show_backtrace(1);
7334 }
7335 var20 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
7336 {
7337 parser_prod__ANewExpr__init_anewexpr(var20, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var20:ANewExpr>*/
7338 }
7339 var_pexprnode1 = var20;
7340 var_node_list = var_pexprnode1;
7341 var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction336> */
7342 {
7343 var22 = parser_work__Parser__go_to(var_p, var21);
7344 }
7345 {
7346 parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7347 }
7348 RET_LABEL:;
7349 }
7350 /* method parser#ReduceAction336#action for (self: Object, Parser) */
7351 void VIRTUAL_parser__ReduceAction336__action(val* self, val* p0) {
7352 parser__ReduceAction336__action(self, p0); /* Direct call parser#ReduceAction336#action on <self:Object(ReduceAction336)>*/
7353 RET_LABEL:;
7354 }
7355 /* method parser#ReduceAction337#action for (self: ReduceAction337, Parser) */
7356 void parser__ReduceAction337__action(val* self, val* p0) {
7357 val* var_p /* var p: Parser */;
7358 val* var /* : null */;
7359 val* var_node_list /* var node_list: nullable Object */;
7360 val* var1 /* : nullable Object */;
7361 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7362 val* var2 /* : nullable Object */;
7363 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7364 val* var3 /* : nullable Object */;
7365 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7366 val* var4 /* : nullable Object */;
7367 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7368 val* var5 /* : nullable Object */;
7369 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7370 val* var6 /* : nullable Object */;
7371 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7372 val* var7 /* : nullable Object */;
7373 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7374 val* var8 /* : nullable Object */;
7375 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7376 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
7377 short int var9 /* : Bool */;
7378 int cltype;
7379 int idtype;
7380 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
7381 short int var10 /* : Bool */;
7382 int cltype11;
7383 int idtype12;
7384 val* var_tidnode4 /* var tidnode4: nullable Object */;
7385 short int var13 /* : Bool */;
7386 int cltype14;
7387 int idtype15;
7388 val* var16 /* : Array[Object] */;
7389 val* var_listnode6 /* var listnode6: Array[Object] */;
7390 val* var17 /* : AListExprs */;
7391 val* var_pexprsnode5 /* var pexprsnode5: nullable AListExprs */;
7392 val* var18 /* : ANewExpr */;
7393 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
7394 long var19 /* : Int */;
7395 long var20 /* : Int */;
7396 var_p = p0;
7397 var = NULL;
7398 var_node_list = var;
7399 {
7400 var1 = parser_work__Parser__pop(var_p);
7401 }
7402 var_nodearraylist8 = var1;
7403 {
7404 var2 = parser_work__Parser__pop(var_p);
7405 }
7406 var_nodearraylist7 = var2;
7407 {
7408 var3 = parser_work__Parser__pop(var_p);
7409 }
7410 var_nodearraylist6 = var3;
7411 {
7412 var4 = parser_work__Parser__pop(var_p);
7413 }
7414 var_nodearraylist5 = var4;
7415 {
7416 var5 = parser_work__Parser__pop(var_p);
7417 }
7418 var_nodearraylist4 = var5;
7419 {
7420 var6 = parser_work__Parser__pop(var_p);
7421 }
7422 var_nodearraylist3 = var6;
7423 {
7424 var7 = parser_work__Parser__pop(var_p);
7425 }
7426 var_nodearraylist2 = var7;
7427 {
7428 var8 = parser_work__Parser__pop(var_p);
7429 }
7430 var_nodearraylist1 = var8;
7431 var_tkwnewnode2 = var_nodearraylist1;
7432 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
7433 cltype = type_nullable_parser_nodes__TKwnew.color;
7434 idtype = type_nullable_parser_nodes__TKwnew.id;
7435 if(var_tkwnewnode2 == NULL) {
7436 var9 = 1;
7437 } else {
7438 if(cltype >= var_tkwnewnode2->type->table_size) {
7439 var9 = 0;
7440 } else {
7441 var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
7442 }
7443 }
7444 if (unlikely(!var9)) {
7445 PRINT_ERROR("Runtime error: %s", "Assert failed");
7446 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8682);
7447 show_backtrace(1);
7448 }
7449 var_ptypenode3 = var_nodearraylist3;
7450 /* <var_ptypenode3:nullable Object> isa nullable AType */
7451 cltype11 = type_nullable_parser_nodes__AType.color;
7452 idtype12 = type_nullable_parser_nodes__AType.id;
7453 if(var_ptypenode3 == NULL) {
7454 var10 = 1;
7455 } else {
7456 if(cltype11 >= var_ptypenode3->type->table_size) {
7457 var10 = 0;
7458 } else {
7459 var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
7460 }
7461 }
7462 if (unlikely(!var10)) {
7463 PRINT_ERROR("Runtime error: %s", "Assert failed");
7464 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8684);
7465 show_backtrace(1);
7466 }
7467 var_tidnode4 = var_nodearraylist8;
7468 /* <var_tidnode4:nullable Object> isa nullable TId */
7469 cltype14 = type_nullable_parser_nodes__TId.color;
7470 idtype15 = type_nullable_parser_nodes__TId.id;
7471 if(var_tidnode4 == NULL) {
7472 var13 = 1;
7473 } else {
7474 if(cltype14 >= var_tidnode4->type->table_size) {
7475 var13 = 0;
7476 } else {
7477 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
7478 }
7479 }
7480 if (unlikely(!var13)) {
7481 PRINT_ERROR("Runtime error: %s", "Assert failed");
7482 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8686);
7483 show_backtrace(1);
7484 }
7485 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
7486 {
7487 ((void (*)(val*))(var16->class->vft[COLOR_kernel__Object__init]))(var16) /* init on <var16:Array[Object]>*/;
7488 }
7489 var_listnode6 = var16;
7490 var17 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
7491 {
7492 parser_prod__AListExprs__init_alistexprs(var17, var_listnode6); /* Direct call parser_prod#AListExprs#init_alistexprs on <var17:AListExprs>*/
7493 }
7494 var_pexprsnode5 = var17;
7495 var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
7496 {
7497 parser_prod__ANewExpr__init_anewexpr(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5); /* Direct call parser_prod#ANewExpr#init_anewexpr on <var18:ANewExpr>*/
7498 }
7499 var_pexprnode1 = var18;
7500 var_node_list = var_pexprnode1;
7501 var19 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction337> */
7502 {
7503 var20 = parser_work__Parser__go_to(var_p, var19);
7504 }
7505 {
7506 parser_work__Parser__push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7507 }
7508 RET_LABEL:;
7509 }
7510 /* method parser#ReduceAction337#action for (self: Object, Parser) */
7511 void VIRTUAL_parser__ReduceAction337__action(val* self, val* p0) {
7512 parser__ReduceAction337__action(self, p0); /* Direct call parser#ReduceAction337#action on <self:Object(ReduceAction337)>*/
7513 RET_LABEL:;
7514 }
7515 /* method parser#ReduceAction340#action for (self: ReduceAction340, Parser) */
7516 void parser__ReduceAction340__action(val* self, val* p0) {
7517 val* var_p /* var p: Parser */;
7518 val* var /* : null */;
7519 val* var_node_list /* var node_list: nullable Object */;
7520 val* var1 /* : nullable Object */;
7521 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7522 val* var2 /* : nullable Object */;
7523 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7524 val* var3 /* : nullable Object */;
7525 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7526 val* var4 /* : nullable Object */;
7527 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7528 val* var5 /* : nullable Object */;
7529 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7530 val* var6 /* : nullable Object */;
7531 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7532 val* var7 /* : nullable Object */;
7533 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7534 val* var8 /* : nullable Object */;
7535 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7536 val* var9 /* : nullable Object */;
7537 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7538 val* var10 /* : nullable Object */;
7539 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7540 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7541 short int var11 /* : Bool */;
7542 int cltype;
7543 int idtype;
7544 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7545 short int var12 /* : Bool */;
7546 int cltype13;
7547 int idtype14;
7548 val* var_toparnode4 /* var toparnode4: nullable Object */;
7549 short int var15 /* : Bool */;
7550 int cltype16;
7551 int idtype17;
7552 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
7553 short int var18 /* : Bool */;
7554 int cltype19;
7555 int idtype20;
7556 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
7557 short int var21 /* : Bool */;
7558 int cltype22;
7559 int idtype23;
7560 val* var24 /* : AAsCastExpr */;
7561 val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
7562 long var25 /* : Int */;
7563 long var26 /* : Int */;
7564 var_p = p0;
7565 var = NULL;
7566 var_node_list = var;
7567 {
7568 var1 = parser_work__Parser__pop(var_p);
7569 }
7570 var_nodearraylist10 = var1;
7571 {
7572 var2 = parser_work__Parser__pop(var_p);
7573 }
7574 var_nodearraylist9 = var2;
7575 {
7576 var3 = parser_work__Parser__pop(var_p);
7577 }
7578 var_nodearraylist8 = var3;
7579 {
7580 var4 = parser_work__Parser__pop(var_p);
7581 }
7582 var_nodearraylist7 = var4;
7583 {
7584 var5 = parser_work__Parser__pop(var_p);
7585 }
7586 var_nodearraylist6 = var5;
7587 {
7588 var6 = parser_work__Parser__pop(var_p);
7589 }
7590 var_nodearraylist5 = var6;
7591 {
7592 var7 = parser_work__Parser__pop(var_p);
7593 }
7594 var_nodearraylist4 = var7;
7595 {
7596 var8 = parser_work__Parser__pop(var_p);
7597 }
7598 var_nodearraylist3 = var8;
7599 {
7600 var9 = parser_work__Parser__pop(var_p);
7601 }
7602 var_nodearraylist2 = var9;
7603 {
7604 var10 = parser_work__Parser__pop(var_p);
7605 }
7606 var_nodearraylist1 = var10;
7607 var_pexprnode2 = var_nodearraylist1;
7608 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7609 cltype = type_nullable_parser_nodes__AExpr.color;
7610 idtype = type_nullable_parser_nodes__AExpr.id;
7611 if(var_pexprnode2 == NULL) {
7612 var11 = 1;
7613 } else {
7614 if(cltype >= var_pexprnode2->type->table_size) {
7615 var11 = 0;
7616 } else {
7617 var11 = var_pexprnode2->type->type_table[cltype] == idtype;
7618 }
7619 }
7620 if (unlikely(!var11)) {
7621 PRINT_ERROR("Runtime error: %s", "Assert failed");
7622 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8717);
7623 show_backtrace(1);
7624 }
7625 var_tkwasnode3 = var_nodearraylist4;
7626 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7627 cltype13 = type_nullable_parser_nodes__TKwas.color;
7628 idtype14 = type_nullable_parser_nodes__TKwas.id;
7629 if(var_tkwasnode3 == NULL) {
7630 var12 = 1;
7631 } else {
7632 if(cltype13 >= var_tkwasnode3->type->table_size) {
7633 var12 = 0;
7634 } else {
7635 var12 = var_tkwasnode3->type->type_table[cltype13] == idtype14;
7636 }
7637 }
7638 if (unlikely(!var12)) {
7639 PRINT_ERROR("Runtime error: %s", "Assert failed");
7640 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8719);
7641 show_backtrace(1);
7642 }
7643 var_toparnode4 = var_nodearraylist6;
7644 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7645 cltype16 = type_nullable_parser_nodes__TOpar.color;
7646 idtype17 = type_nullable_parser_nodes__TOpar.id;
7647 if(var_toparnode4 == NULL) {
7648 var15 = 1;
7649 } else {
7650 if(cltype16 >= var_toparnode4->type->table_size) {
7651 var15 = 0;
7652 } else {
7653 var15 = var_toparnode4->type->type_table[cltype16] == idtype17;
7654 }
7655 }
7656 if (unlikely(!var15)) {
7657 PRINT_ERROR("Runtime error: %s", "Assert failed");
7658 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8721);
7659 show_backtrace(1);
7660 }
7661 var_ptypenode5 = var_nodearraylist8;
7662 /* <var_ptypenode5:nullable Object> isa nullable AType */
7663 cltype19 = type_nullable_parser_nodes__AType.color;
7664 idtype20 = type_nullable_parser_nodes__AType.id;
7665 if(var_ptypenode5 == NULL) {
7666 var18 = 1;
7667 } else {
7668 if(cltype19 >= var_ptypenode5->type->table_size) {
7669 var18 = 0;
7670 } else {
7671 var18 = var_ptypenode5->type->type_table[cltype19] == idtype20;
7672 }
7673 }
7674 if (unlikely(!var18)) {
7675 PRINT_ERROR("Runtime error: %s", "Assert failed");
7676 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8723);
7677 show_backtrace(1);
7678 }
7679 var_tcparnode6 = var_nodearraylist10;
7680 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
7681 cltype22 = type_nullable_parser_nodes__TCpar.color;
7682 idtype23 = type_nullable_parser_nodes__TCpar.id;
7683 if(var_tcparnode6 == NULL) {
7684 var21 = 1;
7685 } else {
7686 if(cltype22 >= var_tcparnode6->type->table_size) {
7687 var21 = 0;
7688 } else {
7689 var21 = var_tcparnode6->type->type_table[cltype22] == idtype23;
7690 }
7691 }
7692 if (unlikely(!var21)) {
7693 PRINT_ERROR("Runtime error: %s", "Assert failed");
7694 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8725);
7695 show_backtrace(1);
7696 }
7697 var24 = NEW_parser_nodes__AAsCastExpr(&type_parser_nodes__AAsCastExpr);
7698 {
7699 parser_prod__AAsCastExpr__init_aascastexpr(var24, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6); /* Direct call parser_prod#AAsCastExpr#init_aascastexpr on <var24:AAsCastExpr>*/
7700 }
7701 var_pexprnode1 = var24;
7702 var_node_list = var_pexprnode1;
7703 var25 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction340> */
7704 {
7705 var26 = parser_work__Parser__go_to(var_p, var25);
7706 }
7707 {
7708 parser_work__Parser__push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7709 }
7710 RET_LABEL:;
7711 }
7712 /* method parser#ReduceAction340#action for (self: Object, Parser) */
7713 void VIRTUAL_parser__ReduceAction340__action(val* self, val* p0) {
7714 parser__ReduceAction340__action(self, p0); /* Direct call parser#ReduceAction340#action on <self:Object(ReduceAction340)>*/
7715 RET_LABEL:;
7716 }
7717 /* method parser#ReduceAction341#action for (self: ReduceAction341, Parser) */
7718 void parser__ReduceAction341__action(val* self, val* p0) {
7719 val* var_p /* var p: Parser */;
7720 val* var /* : null */;
7721 val* var_node_list /* var node_list: nullable Object */;
7722 val* var1 /* : nullable Object */;
7723 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
7724 val* var2 /* : nullable Object */;
7725 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7726 val* var3 /* : nullable Object */;
7727 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7728 val* var4 /* : nullable Object */;
7729 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7730 val* var5 /* : nullable Object */;
7731 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7732 val* var6 /* : nullable Object */;
7733 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7734 val* var7 /* : nullable Object */;
7735 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7736 val* var8 /* : nullable Object */;
7737 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7738 val* var9 /* : nullable Object */;
7739 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7740 val* var10 /* : nullable Object */;
7741 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7742 val* var11 /* : nullable Object */;
7743 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7744 val* var12 /* : nullable Object */;
7745 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7746 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7747 short int var13 /* : Bool */;
7748 int cltype;
7749 int idtype;
7750 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7751 short int var14 /* : Bool */;
7752 int cltype15;
7753 int idtype16;
7754 val* var_toparnode4 /* var toparnode4: nullable Object */;
7755 short int var17 /* : Bool */;
7756 int cltype18;
7757 int idtype19;
7758 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
7759 short int var20 /* : Bool */;
7760 int cltype21;
7761 int idtype22;
7762 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
7763 short int var23 /* : Bool */;
7764 int cltype24;
7765 int idtype25;
7766 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
7767 short int var26 /* : Bool */;
7768 int cltype27;
7769 int idtype28;
7770 val* var29 /* : AAsNotnullExpr */;
7771 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
7772 long var30 /* : Int */;
7773 long var31 /* : Int */;
7774 var_p = p0;
7775 var = NULL;
7776 var_node_list = var;
7777 {
7778 var1 = parser_work__Parser__pop(var_p);
7779 }
7780 var_nodearraylist12 = var1;
7781 {
7782 var2 = parser_work__Parser__pop(var_p);
7783 }
7784 var_nodearraylist11 = var2;
7785 {
7786 var3 = parser_work__Parser__pop(var_p);
7787 }
7788 var_nodearraylist10 = var3;
7789 {
7790 var4 = parser_work__Parser__pop(var_p);
7791 }
7792 var_nodearraylist9 = var4;
7793 {
7794 var5 = parser_work__Parser__pop(var_p);
7795 }
7796 var_nodearraylist8 = var5;
7797 {
7798 var6 = parser_work__Parser__pop(var_p);
7799 }
7800 var_nodearraylist7 = var6;
7801 {
7802 var7 = parser_work__Parser__pop(var_p);
7803 }
7804 var_nodearraylist6 = var7;
7805 {
7806 var8 = parser_work__Parser__pop(var_p);
7807 }
7808 var_nodearraylist5 = var8;
7809 {
7810 var9 = parser_work__Parser__pop(var_p);
7811 }
7812 var_nodearraylist4 = var9;
7813 {
7814 var10 = parser_work__Parser__pop(var_p);
7815 }
7816 var_nodearraylist3 = var10;
7817 {
7818 var11 = parser_work__Parser__pop(var_p);
7819 }
7820 var_nodearraylist2 = var11;
7821 {
7822 var12 = parser_work__Parser__pop(var_p);
7823 }
7824 var_nodearraylist1 = var12;
7825 var_pexprnode2 = var_nodearraylist1;
7826 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7827 cltype = type_nullable_parser_nodes__AExpr.color;
7828 idtype = type_nullable_parser_nodes__AExpr.id;
7829 if(var_pexprnode2 == NULL) {
7830 var13 = 1;
7831 } else {
7832 if(cltype >= var_pexprnode2->type->table_size) {
7833 var13 = 0;
7834 } else {
7835 var13 = var_pexprnode2->type->type_table[cltype] == idtype;
7836 }
7837 }
7838 if (unlikely(!var13)) {
7839 PRINT_ERROR("Runtime error: %s", "Assert failed");
7840 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8755);
7841 show_backtrace(1);
7842 }
7843 var_tkwasnode3 = var_nodearraylist4;
7844 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7845 cltype15 = type_nullable_parser_nodes__TKwas.color;
7846 idtype16 = type_nullable_parser_nodes__TKwas.id;
7847 if(var_tkwasnode3 == NULL) {
7848 var14 = 1;
7849 } else {
7850 if(cltype15 >= var_tkwasnode3->type->table_size) {
7851 var14 = 0;
7852 } else {
7853 var14 = var_tkwasnode3->type->type_table[cltype15] == idtype16;
7854 }
7855 }
7856 if (unlikely(!var14)) {
7857 PRINT_ERROR("Runtime error: %s", "Assert failed");
7858 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8757);
7859 show_backtrace(1);
7860 }
7861 var_toparnode4 = var_nodearraylist6;
7862 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7863 cltype18 = type_nullable_parser_nodes__TOpar.color;
7864 idtype19 = type_nullable_parser_nodes__TOpar.id;
7865 if(var_toparnode4 == NULL) {
7866 var17 = 1;
7867 } else {
7868 if(cltype18 >= var_toparnode4->type->table_size) {
7869 var17 = 0;
7870 } else {
7871 var17 = var_toparnode4->type->type_table[cltype18] == idtype19;
7872 }
7873 }
7874 if (unlikely(!var17)) {
7875 PRINT_ERROR("Runtime error: %s", "Assert failed");
7876 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8759);
7877 show_backtrace(1);
7878 }
7879 var_tkwnotnode5 = var_nodearraylist8;
7880 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
7881 cltype21 = type_nullable_parser_nodes__TKwnot.color;
7882 idtype22 = type_nullable_parser_nodes__TKwnot.id;
7883 if(var_tkwnotnode5 == NULL) {
7884 var20 = 1;
7885 } else {
7886 if(cltype21 >= var_tkwnotnode5->type->table_size) {
7887 var20 = 0;
7888 } else {
7889 var20 = var_tkwnotnode5->type->type_table[cltype21] == idtype22;
7890 }
7891 }
7892 if (unlikely(!var20)) {
7893 PRINT_ERROR("Runtime error: %s", "Assert failed");
7894 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8761);
7895 show_backtrace(1);
7896 }
7897 var_tkwnullnode6 = var_nodearraylist10;
7898 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
7899 cltype24 = type_nullable_parser_nodes__TKwnull.color;
7900 idtype25 = type_nullable_parser_nodes__TKwnull.id;
7901 if(var_tkwnullnode6 == NULL) {
7902 var23 = 1;
7903 } else {
7904 if(cltype24 >= var_tkwnullnode6->type->table_size) {
7905 var23 = 0;
7906 } else {
7907 var23 = var_tkwnullnode6->type->type_table[cltype24] == idtype25;
7908 }
7909 }
7910 if (unlikely(!var23)) {
7911 PRINT_ERROR("Runtime error: %s", "Assert failed");
7912 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8763);
7913 show_backtrace(1);
7914 }
7915 var_tcparnode7 = var_nodearraylist12;
7916 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
7917 cltype27 = type_nullable_parser_nodes__TCpar.color;
7918 idtype28 = type_nullable_parser_nodes__TCpar.id;
7919 if(var_tcparnode7 == NULL) {
7920 var26 = 1;
7921 } else {
7922 if(cltype27 >= var_tcparnode7->type->table_size) {
7923 var26 = 0;
7924 } else {
7925 var26 = var_tcparnode7->type->type_table[cltype27] == idtype28;
7926 }
7927 }
7928 if (unlikely(!var26)) {
7929 PRINT_ERROR("Runtime error: %s", "Assert failed");
7930 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8765);
7931 show_backtrace(1);
7932 }
7933 var29 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
7934 {
7935 parser_prod__AAsNotnullExpr__init_aasnotnullexpr(var29, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var29:AAsNotnullExpr>*/
7936 }
7937 var_pexprnode1 = var29;
7938 var_node_list = var_pexprnode1;
7939 var30 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction341> */
7940 {
7941 var31 = parser_work__Parser__go_to(var_p, var30);
7942 }
7943 {
7944 parser_work__Parser__push(var_p, var31, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7945 }
7946 RET_LABEL:;
7947 }
7948 /* method parser#ReduceAction341#action for (self: Object, Parser) */
7949 void VIRTUAL_parser__ReduceAction341__action(val* self, val* p0) {
7950 parser__ReduceAction341__action(self, p0); /* Direct call parser#ReduceAction341#action on <self:Object(ReduceAction341)>*/
7951 RET_LABEL:;
7952 }
7953 /* method parser#ReduceAction342#action for (self: ReduceAction342, Parser) */
7954 void parser__ReduceAction342__action(val* self, val* p0) {
7955 val* var_p /* var p: Parser */;
7956 val* var /* : null */;
7957 val* var_node_list /* var node_list: nullable Object */;
7958 val* var1 /* : nullable Object */;
7959 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7960 val* var2 /* : nullable Object */;
7961 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7962 val* var3 /* : nullable Object */;
7963 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7964 val* var4 /* : nullable Object */;
7965 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7966 val* var5 /* : nullable Object */;
7967 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7968 val* var6 /* : nullable Object */;
7969 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7970 val* var7 /* : nullable Object */;
7971 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7972 val* var8 /* : nullable Object */;
7973 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7974 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7975 short int var9 /* : Bool */;
7976 int cltype;
7977 int idtype;
7978 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7979 short int var10 /* : Bool */;
7980 int cltype11;
7981 int idtype12;
7982 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
7983 short int var13 /* : Bool */;
7984 int cltype14;
7985 int idtype15;
7986 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
7987 short int var16 /* : Bool */;
7988 int cltype17;
7989 int idtype18;
7990 val* var19 /* : AAsNotnullExpr */;
7991 val* var20 /* : null */;
7992 val* var21 /* : null */;
7993 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
7994 long var22 /* : Int */;
7995 long var23 /* : Int */;
7996 var_p = p0;
7997 var = NULL;
7998 var_node_list = var;
7999 {
8000 var1 = parser_work__Parser__pop(var_p);
8001 }
8002 var_nodearraylist8 = var1;
8003 {
8004 var2 = parser_work__Parser__pop(var_p);
8005 }
8006 var_nodearraylist7 = var2;
8007 {
8008 var3 = parser_work__Parser__pop(var_p);
8009 }
8010 var_nodearraylist6 = var3;
8011 {
8012 var4 = parser_work__Parser__pop(var_p);
8013 }
8014 var_nodearraylist5 = var4;
8015 {
8016 var5 = parser_work__Parser__pop(var_p);
8017 }
8018 var_nodearraylist4 = var5;
8019 {
8020 var6 = parser_work__Parser__pop(var_p);
8021 }
8022 var_nodearraylist3 = var6;
8023 {
8024 var7 = parser_work__Parser__pop(var_p);
8025 }
8026 var_nodearraylist2 = var7;
8027 {
8028 var8 = parser_work__Parser__pop(var_p);
8029 }
8030 var_nodearraylist1 = var8;
8031 var_pexprnode2 = var_nodearraylist1;
8032 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8033 cltype = type_nullable_parser_nodes__AExpr.color;
8034 idtype = type_nullable_parser_nodes__AExpr.id;
8035 if(var_pexprnode2 == NULL) {
8036 var9 = 1;
8037 } else {
8038 if(cltype >= var_pexprnode2->type->table_size) {
8039 var9 = 0;
8040 } else {
8041 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
8042 }
8043 }
8044 if (unlikely(!var9)) {
8045 PRINT_ERROR("Runtime error: %s", "Assert failed");
8046 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8792);
8047 show_backtrace(1);
8048 }
8049 var_tkwasnode3 = var_nodearraylist4;
8050 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
8051 cltype11 = type_nullable_parser_nodes__TKwas.color;
8052 idtype12 = type_nullable_parser_nodes__TKwas.id;
8053 if(var_tkwasnode3 == NULL) {
8054 var10 = 1;
8055 } else {
8056 if(cltype11 >= var_tkwasnode3->type->table_size) {
8057 var10 = 0;
8058 } else {
8059 var10 = var_tkwasnode3->type->type_table[cltype11] == idtype12;
8060 }
8061 }
8062 if (unlikely(!var10)) {
8063 PRINT_ERROR("Runtime error: %s", "Assert failed");
8064 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8794);
8065 show_backtrace(1);
8066 }
8067 var_tkwnotnode5 = var_nodearraylist6;
8068 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
8069 cltype14 = type_nullable_parser_nodes__TKwnot.color;
8070 idtype15 = type_nullable_parser_nodes__TKwnot.id;
8071 if(var_tkwnotnode5 == NULL) {
8072 var13 = 1;
8073 } else {
8074 if(cltype14 >= var_tkwnotnode5->type->table_size) {
8075 var13 = 0;
8076 } else {
8077 var13 = var_tkwnotnode5->type->type_table[cltype14] == idtype15;
8078 }
8079 }
8080 if (unlikely(!var13)) {
8081 PRINT_ERROR("Runtime error: %s", "Assert failed");
8082 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8796);
8083 show_backtrace(1);
8084 }
8085 var_tkwnullnode6 = var_nodearraylist8;
8086 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
8087 cltype17 = type_nullable_parser_nodes__TKwnull.color;
8088 idtype18 = type_nullable_parser_nodes__TKwnull.id;
8089 if(var_tkwnullnode6 == NULL) {
8090 var16 = 1;
8091 } else {
8092 if(cltype17 >= var_tkwnullnode6->type->table_size) {
8093 var16 = 0;
8094 } else {
8095 var16 = var_tkwnullnode6->type->type_table[cltype17] == idtype18;
8096 }
8097 }
8098 if (unlikely(!var16)) {
8099 PRINT_ERROR("Runtime error: %s", "Assert failed");
8100 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8798);
8101 show_backtrace(1);
8102 }
8103 var19 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
8104 var20 = NULL;
8105 var21 = NULL;
8106 {
8107 parser_prod__AAsNotnullExpr__init_aasnotnullexpr(var19, var_pexprnode2, var_tkwasnode3, var20, var_tkwnotnode5, var_tkwnullnode6, var21); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <var19:AAsNotnullExpr>*/
8108 }
8109 var_pexprnode1 = var19;
8110 var_node_list = var_pexprnode1;
8111 var22 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction342> */
8112 {
8113 var23 = parser_work__Parser__go_to(var_p, var22);
8114 }
8115 {
8116 parser_work__Parser__push(var_p, var23, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8117 }
8118 RET_LABEL:;
8119 }
8120 /* method parser#ReduceAction342#action for (self: Object, Parser) */
8121 void VIRTUAL_parser__ReduceAction342__action(val* self, val* p0) {
8122 parser__ReduceAction342__action(self, p0); /* Direct call parser#ReduceAction342#action on <self:Object(ReduceAction342)>*/
8123 RET_LABEL:;
8124 }
8125 /* method parser#ReduceAction343#action for (self: ReduceAction343, Parser) */
8126 void parser__ReduceAction343__action(val* self, val* p0) {
8127 val* var_p /* var p: Parser */;
8128 val* var /* : null */;
8129 val* var_node_list /* var node_list: nullable Object */;
8130 val* var1 /* : nullable Object */;
8131 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8132 val* var2 /* : nullable Object */;
8133 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8134 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8135 short int var3 /* : Bool */;
8136 int cltype;
8137 int idtype;
8138 val* var_tdotdotdotnode3 /* var tdotdotdotnode3: nullable Object */;
8139 short int var4 /* : Bool */;
8140 int cltype5;
8141 int idtype6;
8142 val* var7 /* : AVarargExpr */;
8143 val* var_pexprnode1 /* var pexprnode1: nullable AVarargExpr */;
8144 long var8 /* : Int */;
8145 long var9 /* : Int */;
8146 var_p = p0;
8147 var = NULL;
8148 var_node_list = var;
8149 {
8150 var1 = parser_work__Parser__pop(var_p);
8151 }
8152 var_nodearraylist2 = var1;
8153 {
8154 var2 = parser_work__Parser__pop(var_p);
8155 }
8156 var_nodearraylist1 = var2;
8157 var_pexprnode2 = var_nodearraylist1;
8158 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8159 cltype = type_nullable_parser_nodes__AExpr.color;
8160 idtype = type_nullable_parser_nodes__AExpr.id;
8161 if(var_pexprnode2 == NULL) {
8162 var3 = 1;
8163 } else {
8164 if(cltype >= var_pexprnode2->type->table_size) {
8165 var3 = 0;
8166 } else {
8167 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
8168 }
8169 }
8170 if (unlikely(!var3)) {
8171 PRINT_ERROR("Runtime error: %s", "Assert failed");
8172 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8819);
8173 show_backtrace(1);
8174 }
8175 var_tdotdotdotnode3 = var_nodearraylist2;
8176 /* <var_tdotdotdotnode3:nullable Object> isa nullable TDotdotdot */
8177 cltype5 = type_nullable_parser_nodes__TDotdotdot.color;
8178 idtype6 = type_nullable_parser_nodes__TDotdotdot.id;
8179 if(var_tdotdotdotnode3 == NULL) {
8180 var4 = 1;
8181 } else {
8182 if(cltype5 >= var_tdotdotdotnode3->type->table_size) {
8183 var4 = 0;
8184 } else {
8185 var4 = var_tdotdotdotnode3->type->type_table[cltype5] == idtype6;
8186 }
8187 }
8188 if (unlikely(!var4)) {
8189 PRINT_ERROR("Runtime error: %s", "Assert failed");
8190 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8821);
8191 show_backtrace(1);
8192 }
8193 var7 = NEW_parser_nodes__AVarargExpr(&type_parser_nodes__AVarargExpr);
8194 {
8195 parser_prod__AVarargExpr__init_avarargexpr(var7, var_pexprnode2, var_tdotdotdotnode3); /* Direct call parser_prod#AVarargExpr#init_avarargexpr on <var7:AVarargExpr>*/
8196 }
8197 var_pexprnode1 = var7;
8198 var_node_list = var_pexprnode1;
8199 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction343> */
8200 {
8201 var9 = parser_work__Parser__go_to(var_p, var8);
8202 }
8203 {
8204 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8205 }
8206 RET_LABEL:;
8207 }
8208 /* method parser#ReduceAction343#action for (self: Object, Parser) */
8209 void VIRTUAL_parser__ReduceAction343__action(val* self, val* p0) {
8210 parser__ReduceAction343__action(self, p0); /* Direct call parser#ReduceAction343#action on <self:Object(ReduceAction343)>*/
8211 RET_LABEL:;
8212 }
8213 /* method parser#ReduceAction344#action for (self: ReduceAction344, Parser) */
8214 void parser__ReduceAction344__action(val* self, val* p0) {
8215 val* var_p /* var p: Parser */;
8216 val* var /* : null */;
8217 val* var_node_list /* var node_list: nullable Object */;
8218 val* var1 /* : nullable Object */;
8219 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8220 val* var2 /* : nullable Object */;
8221 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8222 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
8223 short int var3 /* : Bool */;
8224 int cltype;
8225 int idtype;
8226 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8227 short int var4 /* : Bool */;
8228 int cltype5;
8229 int idtype6;
8230 val* var7 /* : ASelfExpr */;
8231 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
8232 long var8 /* : Int */;
8233 long var9 /* : Int */;
8234 var_p = p0;
8235 var = NULL;
8236 var_node_list = var;
8237 {
8238 var1 = parser_work__Parser__pop(var_p);
8239 }
8240 var_nodearraylist2 = var1;
8241 {
8242 var2 = parser_work__Parser__pop(var_p);
8243 }
8244 var_nodearraylist1 = var2;
8245 var_tkwselfnode2 = var_nodearraylist1;
8246 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
8247 cltype = type_nullable_parser_nodes__TKwself.color;
8248 idtype = type_nullable_parser_nodes__TKwself.id;
8249 if(var_tkwselfnode2 == NULL) {
8250 var3 = 1;
8251 } else {
8252 if(cltype >= var_tkwselfnode2->type->table_size) {
8253 var3 = 0;
8254 } else {
8255 var3 = var_tkwselfnode2->type->type_table[cltype] == idtype;
8256 }
8257 }
8258 if (unlikely(!var3)) {
8259 PRINT_ERROR("Runtime error: %s", "Assert failed");
8260 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8838);
8261 show_backtrace(1);
8262 }
8263 var_pannotationsnode3 = var_nodearraylist2;
8264 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8265 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8266 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8267 if(var_pannotationsnode3 == NULL) {
8268 var4 = 1;
8269 } else {
8270 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8271 var4 = 0;
8272 } else {
8273 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8274 }
8275 }
8276 if (unlikely(!var4)) {
8277 PRINT_ERROR("Runtime error: %s", "Assert failed");
8278 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8840);
8279 show_backtrace(1);
8280 }
8281 var7 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
8282 {
8283 parser_prod__ASelfExpr__init_aselfexpr(var7, var_tkwselfnode2, var_pannotationsnode3); /* Direct call parser_prod#ASelfExpr#init_aselfexpr on <var7:ASelfExpr>*/
8284 }
8285 var_pexprnode1 = var7;
8286 var_node_list = var_pexprnode1;
8287 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction344> */
8288 {
8289 var9 = parser_work__Parser__go_to(var_p, var8);
8290 }
8291 {
8292 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8293 }
8294 RET_LABEL:;
8295 }
8296 /* method parser#ReduceAction344#action for (self: Object, Parser) */
8297 void VIRTUAL_parser__ReduceAction344__action(val* self, val* p0) {
8298 parser__ReduceAction344__action(self, p0); /* Direct call parser#ReduceAction344#action on <self:Object(ReduceAction344)>*/
8299 RET_LABEL:;
8300 }
8301 /* method parser#ReduceAction345#action for (self: ReduceAction345, Parser) */
8302 void parser__ReduceAction345__action(val* self, val* p0) {
8303 val* var_p /* var p: Parser */;
8304 val* var /* : null */;
8305 val* var_node_list /* var node_list: nullable Object */;
8306 val* var1 /* : nullable Object */;
8307 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8308 val* var2 /* : nullable Object */;
8309 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8310 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
8311 short int var3 /* : Bool */;
8312 int cltype;
8313 int idtype;
8314 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8315 short int var4 /* : Bool */;
8316 int cltype5;
8317 int idtype6;
8318 val* var7 /* : ATrueExpr */;
8319 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
8320 long var8 /* : Int */;
8321 long var9 /* : Int */;
8322 var_p = p0;
8323 var = NULL;
8324 var_node_list = var;
8325 {
8326 var1 = parser_work__Parser__pop(var_p);
8327 }
8328 var_nodearraylist2 = var1;
8329 {
8330 var2 = parser_work__Parser__pop(var_p);
8331 }
8332 var_nodearraylist1 = var2;
8333 var_tkwtruenode2 = var_nodearraylist1;
8334 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
8335 cltype = type_nullable_parser_nodes__TKwtrue.color;
8336 idtype = type_nullable_parser_nodes__TKwtrue.id;
8337 if(var_tkwtruenode2 == NULL) {
8338 var3 = 1;
8339 } else {
8340 if(cltype >= var_tkwtruenode2->type->table_size) {
8341 var3 = 0;
8342 } else {
8343 var3 = var_tkwtruenode2->type->type_table[cltype] == idtype;
8344 }
8345 }
8346 if (unlikely(!var3)) {
8347 PRINT_ERROR("Runtime error: %s", "Assert failed");
8348 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8857);
8349 show_backtrace(1);
8350 }
8351 var_pannotationsnode3 = var_nodearraylist2;
8352 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8353 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8354 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8355 if(var_pannotationsnode3 == NULL) {
8356 var4 = 1;
8357 } else {
8358 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8359 var4 = 0;
8360 } else {
8361 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8362 }
8363 }
8364 if (unlikely(!var4)) {
8365 PRINT_ERROR("Runtime error: %s", "Assert failed");
8366 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8859);
8367 show_backtrace(1);
8368 }
8369 var7 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
8370 {
8371 parser_prod__ATrueExpr__init_atrueexpr(var7, var_tkwtruenode2, var_pannotationsnode3); /* Direct call parser_prod#ATrueExpr#init_atrueexpr on <var7:ATrueExpr>*/
8372 }
8373 var_pexprnode1 = var7;
8374 var_node_list = var_pexprnode1;
8375 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction345> */
8376 {
8377 var9 = parser_work__Parser__go_to(var_p, var8);
8378 }
8379 {
8380 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8381 }
8382 RET_LABEL:;
8383 }
8384 /* method parser#ReduceAction345#action for (self: Object, Parser) */
8385 void VIRTUAL_parser__ReduceAction345__action(val* self, val* p0) {
8386 parser__ReduceAction345__action(self, p0); /* Direct call parser#ReduceAction345#action on <self:Object(ReduceAction345)>*/
8387 RET_LABEL:;
8388 }
8389 /* method parser#ReduceAction346#action for (self: ReduceAction346, Parser) */
8390 void parser__ReduceAction346__action(val* self, val* p0) {
8391 val* var_p /* var p: Parser */;
8392 val* var /* : null */;
8393 val* var_node_list /* var node_list: nullable Object */;
8394 val* var1 /* : nullable Object */;
8395 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8396 val* var2 /* : nullable Object */;
8397 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8398 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
8399 short int var3 /* : Bool */;
8400 int cltype;
8401 int idtype;
8402 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8403 short int var4 /* : Bool */;
8404 int cltype5;
8405 int idtype6;
8406 val* var7 /* : AFalseExpr */;
8407 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
8408 long var8 /* : Int */;
8409 long var9 /* : Int */;
8410 var_p = p0;
8411 var = NULL;
8412 var_node_list = var;
8413 {
8414 var1 = parser_work__Parser__pop(var_p);
8415 }
8416 var_nodearraylist2 = var1;
8417 {
8418 var2 = parser_work__Parser__pop(var_p);
8419 }
8420 var_nodearraylist1 = var2;
8421 var_tkwfalsenode2 = var_nodearraylist1;
8422 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
8423 cltype = type_nullable_parser_nodes__TKwfalse.color;
8424 idtype = type_nullable_parser_nodes__TKwfalse.id;
8425 if(var_tkwfalsenode2 == NULL) {
8426 var3 = 1;
8427 } else {
8428 if(cltype >= var_tkwfalsenode2->type->table_size) {
8429 var3 = 0;
8430 } else {
8431 var3 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
8432 }
8433 }
8434 if (unlikely(!var3)) {
8435 PRINT_ERROR("Runtime error: %s", "Assert failed");
8436 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8876);
8437 show_backtrace(1);
8438 }
8439 var_pannotationsnode3 = var_nodearraylist2;
8440 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8441 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8442 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8443 if(var_pannotationsnode3 == NULL) {
8444 var4 = 1;
8445 } else {
8446 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8447 var4 = 0;
8448 } else {
8449 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8450 }
8451 }
8452 if (unlikely(!var4)) {
8453 PRINT_ERROR("Runtime error: %s", "Assert failed");
8454 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8878);
8455 show_backtrace(1);
8456 }
8457 var7 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
8458 {
8459 parser_prod__AFalseExpr__init_afalseexpr(var7, var_tkwfalsenode2, var_pannotationsnode3); /* Direct call parser_prod#AFalseExpr#init_afalseexpr on <var7:AFalseExpr>*/
8460 }
8461 var_pexprnode1 = var7;
8462 var_node_list = var_pexprnode1;
8463 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction346> */
8464 {
8465 var9 = parser_work__Parser__go_to(var_p, var8);
8466 }
8467 {
8468 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8469 }
8470 RET_LABEL:;
8471 }
8472 /* method parser#ReduceAction346#action for (self: Object, Parser) */
8473 void VIRTUAL_parser__ReduceAction346__action(val* self, val* p0) {
8474 parser__ReduceAction346__action(self, p0); /* Direct call parser#ReduceAction346#action on <self:Object(ReduceAction346)>*/
8475 RET_LABEL:;
8476 }
8477 /* method parser#ReduceAction347#action for (self: ReduceAction347, Parser) */
8478 void parser__ReduceAction347__action(val* self, val* p0) {
8479 val* var_p /* var p: Parser */;
8480 val* var /* : null */;
8481 val* var_node_list /* var node_list: nullable Object */;
8482 val* var1 /* : nullable Object */;
8483 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8484 val* var2 /* : nullable Object */;
8485 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8486 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
8487 short int var3 /* : Bool */;
8488 int cltype;
8489 int idtype;
8490 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8491 short int var4 /* : Bool */;
8492 int cltype5;
8493 int idtype6;
8494 val* var7 /* : ANullExpr */;
8495 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
8496 long var8 /* : Int */;
8497 long var9 /* : Int */;
8498 var_p = p0;
8499 var = NULL;
8500 var_node_list = var;
8501 {
8502 var1 = parser_work__Parser__pop(var_p);
8503 }
8504 var_nodearraylist2 = var1;
8505 {
8506 var2 = parser_work__Parser__pop(var_p);
8507 }
8508 var_nodearraylist1 = var2;
8509 var_tkwnullnode2 = var_nodearraylist1;
8510 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
8511 cltype = type_nullable_parser_nodes__TKwnull.color;
8512 idtype = type_nullable_parser_nodes__TKwnull.id;
8513 if(var_tkwnullnode2 == NULL) {
8514 var3 = 1;
8515 } else {
8516 if(cltype >= var_tkwnullnode2->type->table_size) {
8517 var3 = 0;
8518 } else {
8519 var3 = var_tkwnullnode2->type->type_table[cltype] == idtype;
8520 }
8521 }
8522 if (unlikely(!var3)) {
8523 PRINT_ERROR("Runtime error: %s", "Assert failed");
8524 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8895);
8525 show_backtrace(1);
8526 }
8527 var_pannotationsnode3 = var_nodearraylist2;
8528 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8529 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8530 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8531 if(var_pannotationsnode3 == NULL) {
8532 var4 = 1;
8533 } else {
8534 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8535 var4 = 0;
8536 } else {
8537 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8538 }
8539 }
8540 if (unlikely(!var4)) {
8541 PRINT_ERROR("Runtime error: %s", "Assert failed");
8542 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8897);
8543 show_backtrace(1);
8544 }
8545 var7 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
8546 {
8547 parser_prod__ANullExpr__init_anullexpr(var7, var_tkwnullnode2, var_pannotationsnode3); /* Direct call parser_prod#ANullExpr#init_anullexpr on <var7:ANullExpr>*/
8548 }
8549 var_pexprnode1 = var7;
8550 var_node_list = var_pexprnode1;
8551 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction347> */
8552 {
8553 var9 = parser_work__Parser__go_to(var_p, var8);
8554 }
8555 {
8556 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8557 }
8558 RET_LABEL:;
8559 }
8560 /* method parser#ReduceAction347#action for (self: Object, Parser) */
8561 void VIRTUAL_parser__ReduceAction347__action(val* self, val* p0) {
8562 parser__ReduceAction347__action(self, p0); /* Direct call parser#ReduceAction347#action on <self:Object(ReduceAction347)>*/
8563 RET_LABEL:;
8564 }
8565 /* method parser#ReduceAction348#action for (self: ReduceAction348, Parser) */
8566 void parser__ReduceAction348__action(val* self, val* p0) {
8567 val* var_p /* var p: Parser */;
8568 val* var /* : null */;
8569 val* var_node_list /* var node_list: nullable Object */;
8570 val* var1 /* : nullable Object */;
8571 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8572 val* var2 /* : nullable Object */;
8573 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8574 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
8575 short int var3 /* : Bool */;
8576 int cltype;
8577 int idtype;
8578 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8579 short int var4 /* : Bool */;
8580 int cltype5;
8581 int idtype6;
8582 val* var7 /* : ADecIntExpr */;
8583 val* var_pexprnode1 /* var pexprnode1: nullable ADecIntExpr */;
8584 long var8 /* : Int */;
8585 long var9 /* : Int */;
8586 var_p = p0;
8587 var = NULL;
8588 var_node_list = var;
8589 {
8590 var1 = parser_work__Parser__pop(var_p);
8591 }
8592 var_nodearraylist2 = var1;
8593 {
8594 var2 = parser_work__Parser__pop(var_p);
8595 }
8596 var_nodearraylist1 = var2;
8597 var_tnumbernode2 = var_nodearraylist1;
8598 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
8599 cltype = type_nullable_parser_nodes__TNumber.color;
8600 idtype = type_nullable_parser_nodes__TNumber.id;
8601 if(var_tnumbernode2 == NULL) {
8602 var3 = 1;
8603 } else {
8604 if(cltype >= var_tnumbernode2->type->table_size) {
8605 var3 = 0;
8606 } else {
8607 var3 = var_tnumbernode2->type->type_table[cltype] == idtype;
8608 }
8609 }
8610 if (unlikely(!var3)) {
8611 PRINT_ERROR("Runtime error: %s", "Assert failed");
8612 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8914);
8613 show_backtrace(1);
8614 }
8615 var_pannotationsnode3 = var_nodearraylist2;
8616 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8617 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8618 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8619 if(var_pannotationsnode3 == NULL) {
8620 var4 = 1;
8621 } else {
8622 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8623 var4 = 0;
8624 } else {
8625 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8626 }
8627 }
8628 if (unlikely(!var4)) {
8629 PRINT_ERROR("Runtime error: %s", "Assert failed");
8630 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8916);
8631 show_backtrace(1);
8632 }
8633 var7 = NEW_parser_nodes__ADecIntExpr(&type_parser_nodes__ADecIntExpr);
8634 {
8635 parser_prod__ADecIntExpr__init_adecintexpr(var7, var_tnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#ADecIntExpr#init_adecintexpr on <var7:ADecIntExpr>*/
8636 }
8637 var_pexprnode1 = var7;
8638 var_node_list = var_pexprnode1;
8639 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction348> */
8640 {
8641 var9 = parser_work__Parser__go_to(var_p, var8);
8642 }
8643 {
8644 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8645 }
8646 RET_LABEL:;
8647 }
8648 /* method parser#ReduceAction348#action for (self: Object, Parser) */
8649 void VIRTUAL_parser__ReduceAction348__action(val* self, val* p0) {
8650 parser__ReduceAction348__action(self, p0); /* Direct call parser#ReduceAction348#action on <self:Object(ReduceAction348)>*/
8651 RET_LABEL:;
8652 }
8653 /* method parser#ReduceAction349#action for (self: ReduceAction349, Parser) */
8654 void parser__ReduceAction349__action(val* self, val* p0) {
8655 val* var_p /* var p: Parser */;
8656 val* var /* : null */;
8657 val* var_node_list /* var node_list: nullable Object */;
8658 val* var1 /* : nullable Object */;
8659 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8660 val* var2 /* : nullable Object */;
8661 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8662 val* var_thexnumbernode2 /* var thexnumbernode2: nullable Object */;
8663 short int var3 /* : Bool */;
8664 int cltype;
8665 int idtype;
8666 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8667 short int var4 /* : Bool */;
8668 int cltype5;
8669 int idtype6;
8670 val* var7 /* : AHexIntExpr */;
8671 val* var_pexprnode1 /* var pexprnode1: nullable AHexIntExpr */;
8672 long var8 /* : Int */;
8673 long var9 /* : Int */;
8674 var_p = p0;
8675 var = NULL;
8676 var_node_list = var;
8677 {
8678 var1 = parser_work__Parser__pop(var_p);
8679 }
8680 var_nodearraylist2 = var1;
8681 {
8682 var2 = parser_work__Parser__pop(var_p);
8683 }
8684 var_nodearraylist1 = var2;
8685 var_thexnumbernode2 = var_nodearraylist1;
8686 /* <var_thexnumbernode2:nullable Object> isa nullable THexNumber */
8687 cltype = type_nullable_parser_nodes__THexNumber.color;
8688 idtype = type_nullable_parser_nodes__THexNumber.id;
8689 if(var_thexnumbernode2 == NULL) {
8690 var3 = 1;
8691 } else {
8692 if(cltype >= var_thexnumbernode2->type->table_size) {
8693 var3 = 0;
8694 } else {
8695 var3 = var_thexnumbernode2->type->type_table[cltype] == idtype;
8696 }
8697 }
8698 if (unlikely(!var3)) {
8699 PRINT_ERROR("Runtime error: %s", "Assert failed");
8700 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8933);
8701 show_backtrace(1);
8702 }
8703 var_pannotationsnode3 = var_nodearraylist2;
8704 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8705 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8706 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8707 if(var_pannotationsnode3 == NULL) {
8708 var4 = 1;
8709 } else {
8710 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8711 var4 = 0;
8712 } else {
8713 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8714 }
8715 }
8716 if (unlikely(!var4)) {
8717 PRINT_ERROR("Runtime error: %s", "Assert failed");
8718 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8935);
8719 show_backtrace(1);
8720 }
8721 var7 = NEW_parser_nodes__AHexIntExpr(&type_parser_nodes__AHexIntExpr);
8722 {
8723 parser_prod__AHexIntExpr__init_ahexintexpr(var7, var_thexnumbernode2, var_pannotationsnode3); /* Direct call parser_prod#AHexIntExpr#init_ahexintexpr on <var7:AHexIntExpr>*/
8724 }
8725 var_pexprnode1 = var7;
8726 var_node_list = var_pexprnode1;
8727 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction349> */
8728 {
8729 var9 = parser_work__Parser__go_to(var_p, var8);
8730 }
8731 {
8732 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8733 }
8734 RET_LABEL:;
8735 }
8736 /* method parser#ReduceAction349#action for (self: Object, Parser) */
8737 void VIRTUAL_parser__ReduceAction349__action(val* self, val* p0) {
8738 parser__ReduceAction349__action(self, p0); /* Direct call parser#ReduceAction349#action on <self:Object(ReduceAction349)>*/
8739 RET_LABEL:;
8740 }
8741 /* method parser#ReduceAction350#action for (self: ReduceAction350, Parser) */
8742 void parser__ReduceAction350__action(val* self, val* p0) {
8743 val* var_p /* var p: Parser */;
8744 val* var /* : null */;
8745 val* var_node_list /* var node_list: nullable Object */;
8746 val* var1 /* : nullable Object */;
8747 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8748 val* var2 /* : nullable Object */;
8749 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8750 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
8751 short int var3 /* : Bool */;
8752 int cltype;
8753 int idtype;
8754 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8755 short int var4 /* : Bool */;
8756 int cltype5;
8757 int idtype6;
8758 val* var7 /* : AFloatExpr */;
8759 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
8760 long var8 /* : Int */;
8761 long var9 /* : Int */;
8762 var_p = p0;
8763 var = NULL;
8764 var_node_list = var;
8765 {
8766 var1 = parser_work__Parser__pop(var_p);
8767 }
8768 var_nodearraylist2 = var1;
8769 {
8770 var2 = parser_work__Parser__pop(var_p);
8771 }
8772 var_nodearraylist1 = var2;
8773 var_tfloatnode2 = var_nodearraylist1;
8774 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
8775 cltype = type_nullable_parser_nodes__TFloat.color;
8776 idtype = type_nullable_parser_nodes__TFloat.id;
8777 if(var_tfloatnode2 == NULL) {
8778 var3 = 1;
8779 } else {
8780 if(cltype >= var_tfloatnode2->type->table_size) {
8781 var3 = 0;
8782 } else {
8783 var3 = var_tfloatnode2->type->type_table[cltype] == idtype;
8784 }
8785 }
8786 if (unlikely(!var3)) {
8787 PRINT_ERROR("Runtime error: %s", "Assert failed");
8788 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8952);
8789 show_backtrace(1);
8790 }
8791 var_pannotationsnode3 = var_nodearraylist2;
8792 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8793 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8794 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8795 if(var_pannotationsnode3 == NULL) {
8796 var4 = 1;
8797 } else {
8798 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8799 var4 = 0;
8800 } else {
8801 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8802 }
8803 }
8804 if (unlikely(!var4)) {
8805 PRINT_ERROR("Runtime error: %s", "Assert failed");
8806 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8954);
8807 show_backtrace(1);
8808 }
8809 var7 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
8810 {
8811 parser_prod__AFloatExpr__init_afloatexpr(var7, var_tfloatnode2, var_pannotationsnode3); /* Direct call parser_prod#AFloatExpr#init_afloatexpr on <var7:AFloatExpr>*/
8812 }
8813 var_pexprnode1 = var7;
8814 var_node_list = var_pexprnode1;
8815 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction350> */
8816 {
8817 var9 = parser_work__Parser__go_to(var_p, var8);
8818 }
8819 {
8820 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8821 }
8822 RET_LABEL:;
8823 }
8824 /* method parser#ReduceAction350#action for (self: Object, Parser) */
8825 void VIRTUAL_parser__ReduceAction350__action(val* self, val* p0) {
8826 parser__ReduceAction350__action(self, p0); /* Direct call parser#ReduceAction350#action on <self:Object(ReduceAction350)>*/
8827 RET_LABEL:;
8828 }
8829 /* method parser#ReduceAction351#action for (self: ReduceAction351, Parser) */
8830 void parser__ReduceAction351__action(val* self, val* p0) {
8831 val* var_p /* var p: Parser */;
8832 val* var /* : null */;
8833 val* var_node_list /* var node_list: nullable Object */;
8834 val* var1 /* : nullable Object */;
8835 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8836 val* var2 /* : nullable Object */;
8837 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8838 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
8839 short int var3 /* : Bool */;
8840 int cltype;
8841 int idtype;
8842 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8843 short int var4 /* : Bool */;
8844 int cltype5;
8845 int idtype6;
8846 val* var7 /* : ACharExpr */;
8847 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
8848 long var8 /* : Int */;
8849 long var9 /* : Int */;
8850 var_p = p0;
8851 var = NULL;
8852 var_node_list = var;
8853 {
8854 var1 = parser_work__Parser__pop(var_p);
8855 }
8856 var_nodearraylist2 = var1;
8857 {
8858 var2 = parser_work__Parser__pop(var_p);
8859 }
8860 var_nodearraylist1 = var2;
8861 var_tcharnode2 = var_nodearraylist1;
8862 /* <var_tcharnode2:nullable Object> isa nullable TChar */
8863 cltype = type_nullable_parser_nodes__TChar.color;
8864 idtype = type_nullable_parser_nodes__TChar.id;
8865 if(var_tcharnode2 == NULL) {
8866 var3 = 1;
8867 } else {
8868 if(cltype >= var_tcharnode2->type->table_size) {
8869 var3 = 0;
8870 } else {
8871 var3 = var_tcharnode2->type->type_table[cltype] == idtype;
8872 }
8873 }
8874 if (unlikely(!var3)) {
8875 PRINT_ERROR("Runtime error: %s", "Assert failed");
8876 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8971);
8877 show_backtrace(1);
8878 }
8879 var_pannotationsnode3 = var_nodearraylist2;
8880 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8881 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8882 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8883 if(var_pannotationsnode3 == NULL) {
8884 var4 = 1;
8885 } else {
8886 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8887 var4 = 0;
8888 } else {
8889 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8890 }
8891 }
8892 if (unlikely(!var4)) {
8893 PRINT_ERROR("Runtime error: %s", "Assert failed");
8894 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8973);
8895 show_backtrace(1);
8896 }
8897 var7 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
8898 {
8899 parser_prod__ACharExpr__init_acharexpr(var7, var_tcharnode2, var_pannotationsnode3); /* Direct call parser_prod#ACharExpr#init_acharexpr on <var7:ACharExpr>*/
8900 }
8901 var_pexprnode1 = var7;
8902 var_node_list = var_pexprnode1;
8903 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction351> */
8904 {
8905 var9 = parser_work__Parser__go_to(var_p, var8);
8906 }
8907 {
8908 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8909 }
8910 RET_LABEL:;
8911 }
8912 /* method parser#ReduceAction351#action for (self: Object, Parser) */
8913 void VIRTUAL_parser__ReduceAction351__action(val* self, val* p0) {
8914 parser__ReduceAction351__action(self, p0); /* Direct call parser#ReduceAction351#action on <self:Object(ReduceAction351)>*/
8915 RET_LABEL:;
8916 }
8917 /* method parser#ReduceAction352#action for (self: ReduceAction352, Parser) */
8918 void parser__ReduceAction352__action(val* self, val* p0) {
8919 val* var_p /* var p: Parser */;
8920 val* var /* : null */;
8921 val* var_node_list /* var node_list: nullable Object */;
8922 val* var1 /* : nullable Object */;
8923 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8924 val* var2 /* : nullable Object */;
8925 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8926 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
8927 short int var3 /* : Bool */;
8928 int cltype;
8929 int idtype;
8930 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
8931 short int var4 /* : Bool */;
8932 int cltype5;
8933 int idtype6;
8934 val* var7 /* : AStringExpr */;
8935 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
8936 long var8 /* : Int */;
8937 long var9 /* : Int */;
8938 var_p = p0;
8939 var = NULL;
8940 var_node_list = var;
8941 {
8942 var1 = parser_work__Parser__pop(var_p);
8943 }
8944 var_nodearraylist2 = var1;
8945 {
8946 var2 = parser_work__Parser__pop(var_p);
8947 }
8948 var_nodearraylist1 = var2;
8949 var_tstringnode2 = var_nodearraylist1;
8950 /* <var_tstringnode2:nullable Object> isa nullable TString */
8951 cltype = type_nullable_parser_nodes__TString.color;
8952 idtype = type_nullable_parser_nodes__TString.id;
8953 if(var_tstringnode2 == NULL) {
8954 var3 = 1;
8955 } else {
8956 if(cltype >= var_tstringnode2->type->table_size) {
8957 var3 = 0;
8958 } else {
8959 var3 = var_tstringnode2->type->type_table[cltype] == idtype;
8960 }
8961 }
8962 if (unlikely(!var3)) {
8963 PRINT_ERROR("Runtime error: %s", "Assert failed");
8964 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8990);
8965 show_backtrace(1);
8966 }
8967 var_pannotationsnode3 = var_nodearraylist2;
8968 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
8969 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
8970 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
8971 if(var_pannotationsnode3 == NULL) {
8972 var4 = 1;
8973 } else {
8974 if(cltype5 >= var_pannotationsnode3->type->table_size) {
8975 var4 = 0;
8976 } else {
8977 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
8978 }
8979 }
8980 if (unlikely(!var4)) {
8981 PRINT_ERROR("Runtime error: %s", "Assert failed");
8982 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 8992);
8983 show_backtrace(1);
8984 }
8985 var7 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
8986 {
8987 parser_prod__AStringExpr__init_astringexpr(var7, var_tstringnode2, var_pannotationsnode3); /* Direct call parser_prod#AStringExpr#init_astringexpr on <var7:AStringExpr>*/
8988 }
8989 var_pexprnode1 = var7;
8990 var_node_list = var_pexprnode1;
8991 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction352> */
8992 {
8993 var9 = parser_work__Parser__go_to(var_p, var8);
8994 }
8995 {
8996 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8997 }
8998 RET_LABEL:;
8999 }
9000 /* method parser#ReduceAction352#action for (self: Object, Parser) */
9001 void VIRTUAL_parser__ReduceAction352__action(val* self, val* p0) {
9002 parser__ReduceAction352__action(self, p0); /* Direct call parser#ReduceAction352#action on <self:Object(ReduceAction352)>*/
9003 RET_LABEL:;
9004 }
9005 /* method parser#ReduceAction355#action for (self: ReduceAction355, Parser) */
9006 void parser__ReduceAction355__action(val* self, val* p0) {
9007 val* var_p /* var p: Parser */;
9008 val* var /* : null */;
9009 val* var_node_list /* var node_list: nullable Object */;
9010 val* var1 /* : nullable Object */;
9011 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
9012 val* var2 /* : nullable Object */;
9013 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9014 val* var3 /* : nullable Object */;
9015 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9016 val* var4 /* : nullable Object */;
9017 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9018 val* var5 /* : nullable Object */;
9019 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9020 val* var6 /* : nullable Object */;
9021 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9022 val* var7 /* : nullable Object */;
9023 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9024 val* var8 /* : nullable Object */;
9025 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9026 val* var9 /* : nullable Object */;
9027 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9028 val* var10 /* : nullable Object */;
9029 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9030 val* var_tobranode2 /* var tobranode2: nullable Object */;
9031 short int var11 /* : Bool */;
9032 int cltype;
9033 int idtype;
9034 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9035 short int var12 /* : Bool */;
9036 int cltype13;
9037 int idtype14;
9038 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9039 short int var15 /* : Bool */;
9040 int cltype16;
9041 int idtype17;
9042 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
9043 short int var18 /* : Bool */;
9044 int cltype19;
9045 int idtype20;
9046 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
9047 short int var21 /* : Bool */;
9048 int cltype22;
9049 int idtype23;
9050 val* var24 /* : ACrangeExpr */;
9051 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
9052 long var25 /* : Int */;
9053 long var26 /* : Int */;
9054 var_p = p0;
9055 var = NULL;
9056 var_node_list = var;
9057 {
9058 var1 = parser_work__Parser__pop(var_p);
9059 }
9060 var_nodearraylist10 = var1;
9061 {
9062 var2 = parser_work__Parser__pop(var_p);
9063 }
9064 var_nodearraylist9 = var2;
9065 {
9066 var3 = parser_work__Parser__pop(var_p);
9067 }
9068 var_nodearraylist8 = var3;
9069 {
9070 var4 = parser_work__Parser__pop(var_p);
9071 }
9072 var_nodearraylist7 = var4;
9073 {
9074 var5 = parser_work__Parser__pop(var_p);
9075 }
9076 var_nodearraylist6 = var5;
9077 {
9078 var6 = parser_work__Parser__pop(var_p);
9079 }
9080 var_nodearraylist5 = var6;
9081 {
9082 var7 = parser_work__Parser__pop(var_p);
9083 }
9084 var_nodearraylist4 = var7;
9085 {
9086 var8 = parser_work__Parser__pop(var_p);
9087 }
9088 var_nodearraylist3 = var8;
9089 {
9090 var9 = parser_work__Parser__pop(var_p);
9091 }
9092 var_nodearraylist2 = var9;
9093 {
9094 var10 = parser_work__Parser__pop(var_p);
9095 }
9096 var_nodearraylist1 = var10;
9097 var_tobranode2 = var_nodearraylist1;
9098 /* <var_tobranode2:nullable Object> isa nullable TObra */
9099 cltype = type_nullable_parser_nodes__TObra.color;
9100 idtype = type_nullable_parser_nodes__TObra.id;
9101 if(var_tobranode2 == NULL) {
9102 var11 = 1;
9103 } else {
9104 if(cltype >= var_tobranode2->type->table_size) {
9105 var11 = 0;
9106 } else {
9107 var11 = var_tobranode2->type->type_table[cltype] == idtype;
9108 }
9109 }
9110 if (unlikely(!var11)) {
9111 PRINT_ERROR("Runtime error: %s", "Assert failed");
9112 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9017);
9113 show_backtrace(1);
9114 }
9115 var_pexprnode3 = var_nodearraylist3;
9116 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9117 cltype13 = type_nullable_parser_nodes__AExpr.color;
9118 idtype14 = type_nullable_parser_nodes__AExpr.id;
9119 if(var_pexprnode3 == NULL) {
9120 var12 = 1;
9121 } else {
9122 if(cltype13 >= var_pexprnode3->type->table_size) {
9123 var12 = 0;
9124 } else {
9125 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
9126 }
9127 }
9128 if (unlikely(!var12)) {
9129 PRINT_ERROR("Runtime error: %s", "Assert failed");
9130 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9019);
9131 show_backtrace(1);
9132 }
9133 var_pexprnode4 = var_nodearraylist7;
9134 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9135 cltype16 = type_nullable_parser_nodes__AExpr.color;
9136 idtype17 = type_nullable_parser_nodes__AExpr.id;
9137 if(var_pexprnode4 == NULL) {
9138 var15 = 1;
9139 } else {
9140 if(cltype16 >= var_pexprnode4->type->table_size) {
9141 var15 = 0;
9142 } else {
9143 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
9144 }
9145 }
9146 if (unlikely(!var15)) {
9147 PRINT_ERROR("Runtime error: %s", "Assert failed");
9148 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9021);
9149 show_backtrace(1);
9150 }
9151 var_tcbranode5 = var_nodearraylist9;
9152 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
9153 cltype19 = type_nullable_parser_nodes__TCbra.color;
9154 idtype20 = type_nullable_parser_nodes__TCbra.id;
9155 if(var_tcbranode5 == NULL) {
9156 var18 = 1;
9157 } else {
9158 if(cltype19 >= var_tcbranode5->type->table_size) {
9159 var18 = 0;
9160 } else {
9161 var18 = var_tcbranode5->type->type_table[cltype19] == idtype20;
9162 }
9163 }
9164 if (unlikely(!var18)) {
9165 PRINT_ERROR("Runtime error: %s", "Assert failed");
9166 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9023);
9167 show_backtrace(1);
9168 }
9169 var_pannotationsnode6 = var_nodearraylist10;
9170 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
9171 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
9172 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
9173 if(var_pannotationsnode6 == NULL) {
9174 var21 = 1;
9175 } else {
9176 if(cltype22 >= var_pannotationsnode6->type->table_size) {
9177 var21 = 0;
9178 } else {
9179 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
9180 }
9181 }
9182 if (unlikely(!var21)) {
9183 PRINT_ERROR("Runtime error: %s", "Assert failed");
9184 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9025);
9185 show_backtrace(1);
9186 }
9187 var24 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
9188 {
9189 parser_prod__ACrangeExpr__init_acrangeexpr(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var_pannotationsnode6); /* Direct call parser_prod#ACrangeExpr#init_acrangeexpr on <var24:ACrangeExpr>*/
9190 }
9191 var_pexprnode1 = var24;
9192 var_node_list = var_pexprnode1;
9193 var25 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction355> */
9194 {
9195 var26 = parser_work__Parser__go_to(var_p, var25);
9196 }
9197 {
9198 parser_work__Parser__push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9199 }
9200 RET_LABEL:;
9201 }
9202 /* method parser#ReduceAction355#action for (self: Object, Parser) */
9203 void VIRTUAL_parser__ReduceAction355__action(val* self, val* p0) {
9204 parser__ReduceAction355__action(self, p0); /* Direct call parser#ReduceAction355#action on <self:Object(ReduceAction355)>*/
9205 RET_LABEL:;
9206 }
9207 /* method parser#ReduceAction356#action for (self: ReduceAction356, Parser) */
9208 void parser__ReduceAction356__action(val* self, val* p0) {
9209 val* var_p /* var p: Parser */;
9210 val* var /* : null */;
9211 val* var_node_list /* var node_list: nullable Object */;
9212 val* var1 /* : nullable Object */;
9213 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
9214 val* var2 /* : nullable Object */;
9215 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9216 val* var3 /* : nullable Object */;
9217 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9218 val* var4 /* : nullable Object */;
9219 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9220 val* var5 /* : nullable Object */;
9221 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9222 val* var6 /* : nullable Object */;
9223 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9224 val* var7 /* : nullable Object */;
9225 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9226 val* var8 /* : nullable Object */;
9227 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9228 val* var9 /* : nullable Object */;
9229 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9230 val* var10 /* : nullable Object */;
9231 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9232 val* var_tobranode2 /* var tobranode2: nullable Object */;
9233 short int var11 /* : Bool */;
9234 int cltype;
9235 int idtype;
9236 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9237 short int var12 /* : Bool */;
9238 int cltype13;
9239 int idtype14;
9240 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9241 short int var15 /* : Bool */;
9242 int cltype16;
9243 int idtype17;
9244 val* var_tobranode5 /* var tobranode5: nullable Object */;
9245 short int var18 /* : Bool */;
9246 int cltype19;
9247 int idtype20;
9248 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
9249 short int var21 /* : Bool */;
9250 int cltype22;
9251 int idtype23;
9252 val* var24 /* : AOrangeExpr */;
9253 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
9254 long var25 /* : Int */;
9255 long var26 /* : Int */;
9256 var_p = p0;
9257 var = NULL;
9258 var_node_list = var;
9259 {
9260 var1 = parser_work__Parser__pop(var_p);
9261 }
9262 var_nodearraylist10 = var1;
9263 {
9264 var2 = parser_work__Parser__pop(var_p);
9265 }
9266 var_nodearraylist9 = var2;
9267 {
9268 var3 = parser_work__Parser__pop(var_p);
9269 }
9270 var_nodearraylist8 = var3;
9271 {
9272 var4 = parser_work__Parser__pop(var_p);
9273 }
9274 var_nodearraylist7 = var4;
9275 {
9276 var5 = parser_work__Parser__pop(var_p);
9277 }
9278 var_nodearraylist6 = var5;
9279 {
9280 var6 = parser_work__Parser__pop(var_p);
9281 }
9282 var_nodearraylist5 = var6;
9283 {
9284 var7 = parser_work__Parser__pop(var_p);
9285 }
9286 var_nodearraylist4 = var7;
9287 {
9288 var8 = parser_work__Parser__pop(var_p);
9289 }
9290 var_nodearraylist3 = var8;
9291 {
9292 var9 = parser_work__Parser__pop(var_p);
9293 }
9294 var_nodearraylist2 = var9;
9295 {
9296 var10 = parser_work__Parser__pop(var_p);
9297 }
9298 var_nodearraylist1 = var10;
9299 var_tobranode2 = var_nodearraylist1;
9300 /* <var_tobranode2:nullable Object> isa nullable TObra */
9301 cltype = type_nullable_parser_nodes__TObra.color;
9302 idtype = type_nullable_parser_nodes__TObra.id;
9303 if(var_tobranode2 == NULL) {
9304 var11 = 1;
9305 } else {
9306 if(cltype >= var_tobranode2->type->table_size) {
9307 var11 = 0;
9308 } else {
9309 var11 = var_tobranode2->type->type_table[cltype] == idtype;
9310 }
9311 }
9312 if (unlikely(!var11)) {
9313 PRINT_ERROR("Runtime error: %s", "Assert failed");
9314 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9053);
9315 show_backtrace(1);
9316 }
9317 var_pexprnode3 = var_nodearraylist3;
9318 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9319 cltype13 = type_nullable_parser_nodes__AExpr.color;
9320 idtype14 = type_nullable_parser_nodes__AExpr.id;
9321 if(var_pexprnode3 == NULL) {
9322 var12 = 1;
9323 } else {
9324 if(cltype13 >= var_pexprnode3->type->table_size) {
9325 var12 = 0;
9326 } else {
9327 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
9328 }
9329 }
9330 if (unlikely(!var12)) {
9331 PRINT_ERROR("Runtime error: %s", "Assert failed");
9332 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9055);
9333 show_backtrace(1);
9334 }
9335 var_pexprnode4 = var_nodearraylist7;
9336 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9337 cltype16 = type_nullable_parser_nodes__AExpr.color;
9338 idtype17 = type_nullable_parser_nodes__AExpr.id;
9339 if(var_pexprnode4 == NULL) {
9340 var15 = 1;
9341 } else {
9342 if(cltype16 >= var_pexprnode4->type->table_size) {
9343 var15 = 0;
9344 } else {
9345 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
9346 }
9347 }
9348 if (unlikely(!var15)) {
9349 PRINT_ERROR("Runtime error: %s", "Assert failed");
9350 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9057);
9351 show_backtrace(1);
9352 }
9353 var_tobranode5 = var_nodearraylist9;
9354 /* <var_tobranode5:nullable Object> isa nullable TObra */
9355 cltype19 = type_nullable_parser_nodes__TObra.color;
9356 idtype20 = type_nullable_parser_nodes__TObra.id;
9357 if(var_tobranode5 == NULL) {
9358 var18 = 1;
9359 } else {
9360 if(cltype19 >= var_tobranode5->type->table_size) {
9361 var18 = 0;
9362 } else {
9363 var18 = var_tobranode5->type->type_table[cltype19] == idtype20;
9364 }
9365 }
9366 if (unlikely(!var18)) {
9367 PRINT_ERROR("Runtime error: %s", "Assert failed");
9368 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9059);
9369 show_backtrace(1);
9370 }
9371 var_pannotationsnode6 = var_nodearraylist10;
9372 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
9373 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
9374 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
9375 if(var_pannotationsnode6 == NULL) {
9376 var21 = 1;
9377 } else {
9378 if(cltype22 >= var_pannotationsnode6->type->table_size) {
9379 var21 = 0;
9380 } else {
9381 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
9382 }
9383 }
9384 if (unlikely(!var21)) {
9385 PRINT_ERROR("Runtime error: %s", "Assert failed");
9386 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9061);
9387 show_backtrace(1);
9388 }
9389 var24 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
9390 {
9391 parser_prod__AOrangeExpr__init_aorangeexpr(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var_pannotationsnode6); /* Direct call parser_prod#AOrangeExpr#init_aorangeexpr on <var24:AOrangeExpr>*/
9392 }
9393 var_pexprnode1 = var24;
9394 var_node_list = var_pexprnode1;
9395 var25 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction356> */
9396 {
9397 var26 = parser_work__Parser__go_to(var_p, var25);
9398 }
9399 {
9400 parser_work__Parser__push(var_p, var26, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9401 }
9402 RET_LABEL:;
9403 }
9404 /* method parser#ReduceAction356#action for (self: Object, Parser) */
9405 void VIRTUAL_parser__ReduceAction356__action(val* self, val* p0) {
9406 parser__ReduceAction356__action(self, p0); /* Direct call parser#ReduceAction356#action on <self:Object(ReduceAction356)>*/
9407 RET_LABEL:;
9408 }
9409 /* method parser#ReduceAction357#action for (self: ReduceAction357, Parser) */
9410 void parser__ReduceAction357__action(val* self, val* p0) {
9411 val* var_p /* var p: Parser */;
9412 val* var /* : null */;
9413 val* var_node_list /* var node_list: nullable Object */;
9414 val* var1 /* : nullable Object */;
9415 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9416 val* var2 /* : nullable Object */;
9417 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9418 val* var3 /* : nullable Object */;
9419 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9420 val* var4 /* : nullable Object */;
9421 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9422 val* var5 /* : nullable Object */;
9423 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9424 val* var6 /* : nullable Object */;
9425 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9426 val* var_tobranode2 /* var tobranode2: nullable Object */;
9427 short int var7 /* : Bool */;
9428 int cltype;
9429 int idtype;
9430 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
9431 short int var8 /* : Bool */;
9432 int cltype9;
9433 int idtype10;
9434 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
9435 short int var11 /* : Bool */;
9436 int cltype12;
9437 int idtype13;
9438 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
9439 short int var14 /* : Bool */;
9440 int cltype15;
9441 int idtype16;
9442 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
9443 short int var17 /* : Bool */;
9444 int cltype18;
9445 int idtype19;
9446 val* var20 /* : AArrayExpr */;
9447 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
9448 long var21 /* : Int */;
9449 long var22 /* : Int */;
9450 var_p = p0;
9451 var = NULL;
9452 var_node_list = var;
9453 {
9454 var1 = parser_work__Parser__pop(var_p);
9455 }
9456 var_nodearraylist6 = var1;
9457 {
9458 var2 = parser_work__Parser__pop(var_p);
9459 }
9460 var_nodearraylist5 = var2;
9461 {
9462 var3 = parser_work__Parser__pop(var_p);
9463 }
9464 var_nodearraylist4 = var3;
9465 {
9466 var4 = parser_work__Parser__pop(var_p);
9467 }
9468 var_nodearraylist3 = var4;
9469 {
9470 var5 = parser_work__Parser__pop(var_p);
9471 }
9472 var_nodearraylist2 = var5;
9473 {
9474 var6 = parser_work__Parser__pop(var_p);
9475 }
9476 var_nodearraylist1 = var6;
9477 var_tobranode2 = var_nodearraylist1;
9478 /* <var_tobranode2:nullable Object> isa nullable TObra */
9479 cltype = type_nullable_parser_nodes__TObra.color;
9480 idtype = type_nullable_parser_nodes__TObra.id;
9481 if(var_tobranode2 == NULL) {
9482 var7 = 1;
9483 } else {
9484 if(cltype >= var_tobranode2->type->table_size) {
9485 var7 = 0;
9486 } else {
9487 var7 = var_tobranode2->type->type_table[cltype] == idtype;
9488 }
9489 }
9490 if (unlikely(!var7)) {
9491 PRINT_ERROR("Runtime error: %s", "Assert failed");
9492 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9085);
9493 show_backtrace(1);
9494 }
9495 var_pexprsnode3 = var_nodearraylist3;
9496 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
9497 cltype9 = type_nullable_parser_nodes__AExprs.color;
9498 idtype10 = type_nullable_parser_nodes__AExprs.id;
9499 if(var_pexprsnode3 == NULL) {
9500 var8 = 1;
9501 } else {
9502 if(cltype9 >= var_pexprsnode3->type->table_size) {
9503 var8 = 0;
9504 } else {
9505 var8 = var_pexprsnode3->type->type_table[cltype9] == idtype10;
9506 }
9507 }
9508 if (unlikely(!var8)) {
9509 PRINT_ERROR("Runtime error: %s", "Assert failed");
9510 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9087);
9511 show_backtrace(1);
9512 }
9513 var_ptypenode4 = var_nodearraylist4;
9514 /* <var_ptypenode4:nullable Object> isa nullable AType */
9515 cltype12 = type_nullable_parser_nodes__AType.color;
9516 idtype13 = type_nullable_parser_nodes__AType.id;
9517 if(var_ptypenode4 == NULL) {
9518 var11 = 1;
9519 } else {
9520 if(cltype12 >= var_ptypenode4->type->table_size) {
9521 var11 = 0;
9522 } else {
9523 var11 = var_ptypenode4->type->type_table[cltype12] == idtype13;
9524 }
9525 }
9526 if (unlikely(!var11)) {
9527 PRINT_ERROR("Runtime error: %s", "Assert failed");
9528 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9089);
9529 show_backtrace(1);
9530 }
9531 var_tcbranode5 = var_nodearraylist5;
9532 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
9533 cltype15 = type_nullable_parser_nodes__TCbra.color;
9534 idtype16 = type_nullable_parser_nodes__TCbra.id;
9535 if(var_tcbranode5 == NULL) {
9536 var14 = 1;
9537 } else {
9538 if(cltype15 >= var_tcbranode5->type->table_size) {
9539 var14 = 0;
9540 } else {
9541 var14 = var_tcbranode5->type->type_table[cltype15] == idtype16;
9542 }
9543 }
9544 if (unlikely(!var14)) {
9545 PRINT_ERROR("Runtime error: %s", "Assert failed");
9546 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9091);
9547 show_backtrace(1);
9548 }
9549 var_pannotationsnode6 = var_nodearraylist6;
9550 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
9551 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
9552 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
9553 if(var_pannotationsnode6 == NULL) {
9554 var17 = 1;
9555 } else {
9556 if(cltype18 >= var_pannotationsnode6->type->table_size) {
9557 var17 = 0;
9558 } else {
9559 var17 = var_pannotationsnode6->type->type_table[cltype18] == idtype19;
9560 }
9561 }
9562 if (unlikely(!var17)) {
9563 PRINT_ERROR("Runtime error: %s", "Assert failed");
9564 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9093);
9565 show_backtrace(1);
9566 }
9567 var20 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
9568 {
9569 parser_prod__AArrayExpr__init_aarrayexpr(var20, var_tobranode2, var_pexprsnode3, var_ptypenode4, var_tcbranode5, var_pannotationsnode6); /* Direct call parser_prod#AArrayExpr#init_aarrayexpr on <var20:AArrayExpr>*/
9570 }
9571 var_pexprnode1 = var20;
9572 var_node_list = var_pexprnode1;
9573 var21 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction357> */
9574 {
9575 var22 = parser_work__Parser__go_to(var_p, var21);
9576 }
9577 {
9578 parser_work__Parser__push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9579 }
9580 RET_LABEL:;
9581 }
9582 /* method parser#ReduceAction357#action for (self: Object, Parser) */
9583 void VIRTUAL_parser__ReduceAction357__action(val* self, val* p0) {
9584 parser__ReduceAction357__action(self, p0); /* Direct call parser#ReduceAction357#action on <self:Object(ReduceAction357)>*/
9585 RET_LABEL:;
9586 }
9587 /* method parser#ReduceAction358#action for (self: ReduceAction358, Parser) */
9588 void parser__ReduceAction358__action(val* self, val* p0) {
9589 val* var_p /* var p: Parser */;
9590 val* var /* : null */;
9591 val* var_node_list /* var node_list: nullable Object */;
9592 val* var1 /* : nullable Object */;
9593 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9594 val* var2 /* : nullable Object */;
9595 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9596 val* var3 /* : nullable Object */;
9597 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9598 val* var4 /* : nullable Object */;
9599 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9600 val* var5 /* : nullable Object */;
9601 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9602 val* var6 /* : nullable Object */;
9603 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9604 val* var_toparnode2 /* var toparnode2: nullable Object */;
9605 short int var7 /* : Bool */;
9606 int cltype;
9607 int idtype;
9608 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9609 short int var8 /* : Bool */;
9610 int cltype9;
9611 int idtype10;
9612 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
9613 short int var11 /* : Bool */;
9614 int cltype12;
9615 int idtype13;
9616 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
9617 short int var14 /* : Bool */;
9618 int cltype15;
9619 int idtype16;
9620 val* var17 /* : AParExpr */;
9621 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
9622 long var18 /* : Int */;
9623 long var19 /* : Int */;
9624 var_p = p0;
9625 var = NULL;
9626 var_node_list = var;
9627 {
9628 var1 = parser_work__Parser__pop(var_p);
9629 }
9630 var_nodearraylist6 = var1;
9631 {
9632 var2 = parser_work__Parser__pop(var_p);
9633 }
9634 var_nodearraylist5 = var2;
9635 {
9636 var3 = parser_work__Parser__pop(var_p);
9637 }
9638 var_nodearraylist4 = var3;
9639 {
9640 var4 = parser_work__Parser__pop(var_p);
9641 }
9642 var_nodearraylist3 = var4;
9643 {
9644 var5 = parser_work__Parser__pop(var_p);
9645 }
9646 var_nodearraylist2 = var5;
9647 {
9648 var6 = parser_work__Parser__pop(var_p);
9649 }
9650 var_nodearraylist1 = var6;
9651 var_toparnode2 = var_nodearraylist1;
9652 /* <var_toparnode2:nullable Object> isa nullable TOpar */
9653 cltype = type_nullable_parser_nodes__TOpar.color;
9654 idtype = type_nullable_parser_nodes__TOpar.id;
9655 if(var_toparnode2 == NULL) {
9656 var7 = 1;
9657 } else {
9658 if(cltype >= var_toparnode2->type->table_size) {
9659 var7 = 0;
9660 } else {
9661 var7 = var_toparnode2->type->type_table[cltype] == idtype;
9662 }
9663 }
9664 if (unlikely(!var7)) {
9665 PRINT_ERROR("Runtime error: %s", "Assert failed");
9666 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9117);
9667 show_backtrace(1);
9668 }
9669 var_pexprnode3 = var_nodearraylist3;
9670 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9671 cltype9 = type_nullable_parser_nodes__AExpr.color;
9672 idtype10 = type_nullable_parser_nodes__AExpr.id;
9673 if(var_pexprnode3 == NULL) {
9674 var8 = 1;
9675 } else {
9676 if(cltype9 >= var_pexprnode3->type->table_size) {
9677 var8 = 0;
9678 } else {
9679 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
9680 }
9681 }
9682 if (unlikely(!var8)) {
9683 PRINT_ERROR("Runtime error: %s", "Assert failed");
9684 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9119);
9685 show_backtrace(1);
9686 }
9687 var_tcparnode4 = var_nodearraylist5;
9688 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
9689 cltype12 = type_nullable_parser_nodes__TCpar.color;
9690 idtype13 = type_nullable_parser_nodes__TCpar.id;
9691 if(var_tcparnode4 == NULL) {
9692 var11 = 1;
9693 } else {
9694 if(cltype12 >= var_tcparnode4->type->table_size) {
9695 var11 = 0;
9696 } else {
9697 var11 = var_tcparnode4->type->type_table[cltype12] == idtype13;
9698 }
9699 }
9700 if (unlikely(!var11)) {
9701 PRINT_ERROR("Runtime error: %s", "Assert failed");
9702 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9121);
9703 show_backtrace(1);
9704 }
9705 var_pannotationsnode5 = var_nodearraylist6;
9706 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
9707 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
9708 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
9709 if(var_pannotationsnode5 == NULL) {
9710 var14 = 1;
9711 } else {
9712 if(cltype15 >= var_pannotationsnode5->type->table_size) {
9713 var14 = 0;
9714 } else {
9715 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
9716 }
9717 }
9718 if (unlikely(!var14)) {
9719 PRINT_ERROR("Runtime error: %s", "Assert failed");
9720 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9123);
9721 show_backtrace(1);
9722 }
9723 var17 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
9724 {
9725 parser_prod__AParExpr__init_aparexpr(var17, var_toparnode2, var_pexprnode3, var_tcparnode4, var_pannotationsnode5); /* Direct call parser_prod#AParExpr#init_aparexpr on <var17:AParExpr>*/
9726 }
9727 var_pexprnode1 = var17;
9728 var_node_list = var_pexprnode1;
9729 var18 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction358> */
9730 {
9731 var19 = parser_work__Parser__go_to(var_p, var18);
9732 }
9733 {
9734 parser_work__Parser__push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9735 }
9736 RET_LABEL:;
9737 }
9738 /* method parser#ReduceAction358#action for (self: Object, Parser) */
9739 void VIRTUAL_parser__ReduceAction358__action(val* self, val* p0) {
9740 parser__ReduceAction358__action(self, p0); /* Direct call parser#ReduceAction358#action on <self:Object(ReduceAction358)>*/
9741 RET_LABEL:;
9742 }
9743 /* method parser#ReduceAction360#action for (self: ReduceAction360, Parser) */
9744 void parser__ReduceAction360__action(val* self, val* p0) {
9745 val* var_p /* var p: Parser */;
9746 val* var /* : null */;
9747 val* var_node_list /* var node_list: nullable Object */;
9748 val* var1 /* : nullable Object */;
9749 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9750 val* var2 /* : nullable Object */;
9751 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9752 val* var3 /* : Array[Object] */;
9753 val* var_listnode4 /* var listnode4: Array[Object] */;
9754 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9755 short int var4 /* : Bool */;
9756 int cltype;
9757 int idtype;
9758 val* var_listnode3 /* var listnode3: nullable Object */;
9759 short int var5 /* : Bool */;
9760 int cltype6;
9761 int idtype7;
9762 val* var8 /* : null */;
9763 short int var9 /* : Bool */;
9764 short int var10 /* : Bool */;
9765 val* var_other /* var other: nullable Object */;
9766 short int var12 /* : Bool */;
9767 short int var13 /* : Bool */;
9768 short int var14 /* : Bool */;
9769 val* var15 /* : Array[Object] */;
9770 val* var16 /* : AManyExpr */;
9771 val* var_pexprnode1 /* var pexprnode1: nullable AManyExpr */;
9772 long var17 /* : Int */;
9773 long var18 /* : Int */;
9774 var_p = p0;
9775 var = NULL;
9776 var_node_list = var;
9777 {
9778 var1 = parser_work__Parser__pop(var_p);
9779 }
9780 var_nodearraylist2 = var1;
9781 {
9782 var2 = parser_work__Parser__pop(var_p);
9783 }
9784 var_nodearraylist1 = var2;
9785 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9786 {
9787 ((void (*)(val*))(var3->class->vft[COLOR_kernel__Object__init]))(var3) /* init on <var3:Array[Object]>*/;
9788 }
9789 var_listnode4 = var3;
9790 var_pexprnode2 = var_nodearraylist1;
9791 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9792 cltype = type_nullable_parser_nodes__AExpr.color;
9793 idtype = type_nullable_parser_nodes__AExpr.id;
9794 if(var_pexprnode2 == NULL) {
9795 var4 = 1;
9796 } else {
9797 if(cltype >= var_pexprnode2->type->table_size) {
9798 var4 = 0;
9799 } else {
9800 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
9801 }
9802 }
9803 if (unlikely(!var4)) {
9804 PRINT_ERROR("Runtime error: %s", "Assert failed");
9805 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9143);
9806 show_backtrace(1);
9807 }
9808 var_listnode3 = var_nodearraylist2;
9809 /* <var_listnode3:nullable Object> isa Array[Object] */
9810 cltype6 = type_array__Arraykernel__Object.color;
9811 idtype7 = type_array__Arraykernel__Object.id;
9812 if(var_listnode3 == NULL) {
9813 var5 = 0;
9814 } else {
9815 if(cltype6 >= var_listnode3->type->table_size) {
9816 var5 = 0;
9817 } else {
9818 var5 = var_listnode3->type->type_table[cltype6] == idtype7;
9819 }
9820 }
9821 if (unlikely(!var5)) {
9822 PRINT_ERROR("Runtime error: %s", "Assert failed");
9823 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9145);
9824 show_backtrace(1);
9825 }
9826 var8 = NULL;
9827 if (var_pexprnode2 == NULL) {
9828 var9 = 0; /* is null */
9829 } else {
9830 var9 = 1; /* arg is null and recv is not */
9831 }
9832 if (0) {
9833 { /* Inline kernel#Object#!= (var_pexprnode2,var8) on <var_pexprnode2:nullable Object(nullable AExpr)> */
9834 var_other = var8;
9835 {
9836 var13 = ((short int (*)(val*, val*))(var_pexprnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pexprnode2, var_other) /* == on <var_pexprnode2:nullable AExpr(AExpr)>*/;
9837 var12 = var13;
9838 }
9839 var14 = !var12;
9840 var10 = var14;
9841 goto RET_LABEL11;
9842 RET_LABEL11:(void)0;
9843 }
9844 var9 = var10;
9845 }
9846 if (var9){
9847 {
9848 array__Array__add(var_listnode4, var_pexprnode2); /* Direct call array#Array#add on <var_listnode4:Array[Object]>*/
9849 }
9850 } else {
9851 }
9852 {
9853 var15 = parser_work__ReduceAction__concat(self, var_listnode4, var_listnode3);
9854 }
9855 var_listnode4 = var15;
9856 var16 = NEW_parser_nodes__AManyExpr(&type_parser_nodes__AManyExpr);
9857 {
9858 parser_prod__AManyExpr__init_amanyexpr(var16, var_listnode4); /* Direct call parser_prod#AManyExpr#init_amanyexpr on <var16:AManyExpr>*/
9859 }
9860 var_pexprnode1 = var16;
9861 var_node_list = var_pexprnode1;
9862 var17 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction360> */
9863 {
9864 var18 = parser_work__Parser__go_to(var_p, var17);
9865 }
9866 {
9867 parser_work__Parser__push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9868 }
9869 RET_LABEL:;
9870 }
9871 /* method parser#ReduceAction360#action for (self: Object, Parser) */
9872 void VIRTUAL_parser__ReduceAction360__action(val* self, val* p0) {
9873 parser__ReduceAction360__action(self, p0); /* Direct call parser#ReduceAction360#action on <self:Object(ReduceAction360)>*/
9874 RET_LABEL:;
9875 }
9876 /* method parser#ReduceAction361#action for (self: ReduceAction361, Parser) */
9877 void parser__ReduceAction361__action(val* self, val* p0) {
9878 val* var_p /* var p: Parser */;
9879 val* var /* : null */;
9880 val* var_node_list /* var node_list: nullable Object */;
9881 val* var1 /* : nullable Object */;
9882 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9883 val* var2 /* : nullable Object */;
9884 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9885 val* var3 /* : nullable Object */;
9886 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9887 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
9888 long var4 /* : Int */;
9889 long var5 /* : Int */;
9890 var_p = p0;
9891 var = NULL;
9892 var_node_list = var;
9893 {
9894 var1 = parser_work__Parser__pop(var_p);
9895 }
9896 var_nodearraylist3 = var1;
9897 {
9898 var2 = parser_work__Parser__pop(var_p);
9899 }
9900 var_nodearraylist2 = var2;
9901 {
9902 var3 = parser_work__Parser__pop(var_p);
9903 }
9904 var_nodearraylist1 = var3;
9905 var_pexprnode1 = var_nodearraylist3;
9906 var_node_list = var_pexprnode1;
9907 var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction361> */
9908 {
9909 var5 = parser_work__Parser__go_to(var_p, var4);
9910 }
9911 {
9912 parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9913 }
9914 RET_LABEL:;
9915 }
9916 /* method parser#ReduceAction361#action for (self: Object, Parser) */
9917 void VIRTUAL_parser__ReduceAction361__action(val* self, val* p0) {
9918 parser__ReduceAction361__action(self, p0); /* Direct call parser#ReduceAction361#action on <self:Object(ReduceAction361)>*/
9919 RET_LABEL:;
9920 }