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