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