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