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