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