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