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