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