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