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