pep8analysis: add copyright info for viz.js
[nit.git] / c_src / parser.sep.14.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction652#action for (self: ReduceAction652, Parser) */
3 void parser__ReduceAction652__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
19 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
20 short int var7 /* : Bool */;
21 int cltype;
22 int idtype;
23 val* var_tidnode3 /* var tidnode3: nullable Object */;
24 short int var8 /* : Bool */;
25 int cltype9;
26 int idtype10;
27 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
28 short int var11 /* : Bool */;
29 int cltype12;
30 int idtype13;
31 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
32 short int var14 /* : Bool */;
33 int cltype15;
34 int idtype16;
35 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
36 short int var17 /* : Bool */;
37 int cltype18;
38 int idtype19;
39 val* var20 /* : AVardeclExpr */;
40 val* var21 /* : null */;
41 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
42 long var22 /* : Int */;
43 long var23 /* : Int */;
44 var_p = p0;
45 var = NULL;
46 var_node_list = var;
47 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
48 var_nodearraylist6 = var1;
49 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
50 var_nodearraylist5 = var2;
51 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
52 var_nodearraylist4 = var3;
53 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
54 var_nodearraylist3 = var4;
55 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
56 var_nodearraylist2 = var5;
57 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
58 var_nodearraylist1 = var6;
59 var_tkwvarnode2 = var_nodearraylist1;
60 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
61 cltype = type_nullable_parser_nodes__TKwvar.color;
62 idtype = type_nullable_parser_nodes__TKwvar.id;
63 if(var_tkwvarnode2 == NULL) {
64 var7 = 1;
65 } else {
66 if(cltype >= var_tkwvarnode2->type->table_size) {
67 var7 = 0;
68 } else {
69 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
70 }
71 }
72 if (!var7) {
73 fprintf(stderr, "Runtime error: %s", "Assert failed");
74 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25026);
75 show_backtrace(1);
76 }
77 var_tidnode3 = var_nodearraylist2;
78 /* <var_tidnode3:nullable Object> isa nullable TId */
79 cltype9 = type_nullable_parser_nodes__TId.color;
80 idtype10 = type_nullable_parser_nodes__TId.id;
81 if(var_tidnode3 == NULL) {
82 var8 = 1;
83 } else {
84 if(cltype9 >= var_tidnode3->type->table_size) {
85 var8 = 0;
86 } else {
87 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
88 }
89 }
90 if (!var8) {
91 fprintf(stderr, "Runtime error: %s", "Assert failed");
92 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25028);
93 show_backtrace(1);
94 }
95 var_ptypenode4 = var_nodearraylist3;
96 /* <var_ptypenode4:nullable Object> isa nullable AType */
97 cltype12 = type_nullable_parser_nodes__AType.color;
98 idtype13 = type_nullable_parser_nodes__AType.id;
99 if(var_ptypenode4 == NULL) {
100 var11 = 1;
101 } else {
102 if(cltype12 >= var_ptypenode4->type->table_size) {
103 var11 = 0;
104 } else {
105 var11 = var_ptypenode4->type->type_table[cltype12] == idtype13;
106 }
107 }
108 if (!var11) {
109 fprintf(stderr, "Runtime error: %s", "Assert failed");
110 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25030);
111 show_backtrace(1);
112 }
113 var_tassignnode5 = var_nodearraylist4;
114 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
115 cltype15 = type_nullable_parser_nodes__TAssign.color;
116 idtype16 = type_nullable_parser_nodes__TAssign.id;
117 if(var_tassignnode5 == NULL) {
118 var14 = 1;
119 } else {
120 if(cltype15 >= var_tassignnode5->type->table_size) {
121 var14 = 0;
122 } else {
123 var14 = var_tassignnode5->type->type_table[cltype15] == idtype16;
124 }
125 }
126 if (!var14) {
127 fprintf(stderr, "Runtime error: %s", "Assert failed");
128 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25032);
129 show_backtrace(1);
130 }
131 var_pexprnode6 = var_nodearraylist6;
132 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
133 cltype18 = type_nullable_parser_nodes__AExpr.color;
134 idtype19 = type_nullable_parser_nodes__AExpr.id;
135 if(var_pexprnode6 == NULL) {
136 var17 = 1;
137 } else {
138 if(cltype18 >= var_pexprnode6->type->table_size) {
139 var17 = 0;
140 } else {
141 var17 = var_pexprnode6->type->type_table[cltype18] == idtype19;
142 }
143 }
144 if (!var17) {
145 fprintf(stderr, "Runtime error: %s", "Assert failed");
146 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25034);
147 show_backtrace(1);
148 }
149 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
150 var21 = NULL;
151 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var21) /* init_avardeclexpr on <var20:AVardeclExpr>*/;
152 var_pexprnode1 = var20;
153 var_node_list = var_pexprnode1;
154 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction652> */
155 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
156 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
157 RET_LABEL:;
158 }
159 /* method parser#ReduceAction652#action for (self: Object, Parser) */
160 void VIRTUAL_parser__ReduceAction652__action(val* self, val* p0) {
161 parser__ReduceAction652__action(self, p0);
162 RET_LABEL:;
163 }
164 /* method parser#ReduceAction653#action for (self: ReduceAction653, Parser) */
165 void parser__ReduceAction653__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
171 val* var2 /* : nullable Object */;
172 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
173 val* var3 /* : nullable Object */;
174 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
175 val* var4 /* : nullable Object */;
176 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
177 val* var5 /* : nullable Object */;
178 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
179 val* var6 /* : nullable Object */;
180 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
181 val* var7 /* : nullable Object */;
182 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
183 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
184 short int var8 /* : Bool */;
185 int cltype;
186 int idtype;
187 val* var_tidnode3 /* var tidnode3: nullable Object */;
188 short int var9 /* : Bool */;
189 int cltype10;
190 int idtype11;
191 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
192 short int var12 /* : Bool */;
193 int cltype13;
194 int idtype14;
195 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
196 short int var15 /* : Bool */;
197 int cltype16;
198 int idtype17;
199 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
200 short int var18 /* : Bool */;
201 int cltype19;
202 int idtype20;
203 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
204 short int var21 /* : Bool */;
205 int cltype22;
206 int idtype23;
207 val* var24 /* : AVardeclExpr */;
208 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
209 long var25 /* : Int */;
210 long var26 /* : Int */;
211 var_p = p0;
212 var = NULL;
213 var_node_list = var;
214 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
215 var_nodearraylist7 = var1;
216 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
217 var_nodearraylist6 = var2;
218 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
219 var_nodearraylist5 = var3;
220 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
221 var_nodearraylist4 = var4;
222 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
223 var_nodearraylist3 = var5;
224 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
225 var_nodearraylist2 = var6;
226 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
227 var_nodearraylist1 = var7;
228 var_tkwvarnode2 = var_nodearraylist1;
229 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
230 cltype = type_nullable_parser_nodes__TKwvar.color;
231 idtype = type_nullable_parser_nodes__TKwvar.id;
232 if(var_tkwvarnode2 == NULL) {
233 var8 = 1;
234 } else {
235 if(cltype >= var_tkwvarnode2->type->table_size) {
236 var8 = 0;
237 } else {
238 var8 = var_tkwvarnode2->type->type_table[cltype] == idtype;
239 }
240 }
241 if (!var8) {
242 fprintf(stderr, "Runtime error: %s", "Assert failed");
243 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25060);
244 show_backtrace(1);
245 }
246 var_tidnode3 = var_nodearraylist2;
247 /* <var_tidnode3:nullable Object> isa nullable TId */
248 cltype10 = type_nullable_parser_nodes__TId.color;
249 idtype11 = type_nullable_parser_nodes__TId.id;
250 if(var_tidnode3 == NULL) {
251 var9 = 1;
252 } else {
253 if(cltype10 >= var_tidnode3->type->table_size) {
254 var9 = 0;
255 } else {
256 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
257 }
258 }
259 if (!var9) {
260 fprintf(stderr, "Runtime error: %s", "Assert failed");
261 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25062);
262 show_backtrace(1);
263 }
264 var_ptypenode4 = var_nodearraylist4;
265 /* <var_ptypenode4:nullable Object> isa nullable AType */
266 cltype13 = type_nullable_parser_nodes__AType.color;
267 idtype14 = type_nullable_parser_nodes__AType.id;
268 if(var_ptypenode4 == NULL) {
269 var12 = 1;
270 } else {
271 if(cltype13 >= var_ptypenode4->type->table_size) {
272 var12 = 0;
273 } else {
274 var12 = var_ptypenode4->type->type_table[cltype13] == idtype14;
275 }
276 }
277 if (!var12) {
278 fprintf(stderr, "Runtime error: %s", "Assert failed");
279 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25064);
280 show_backtrace(1);
281 }
282 var_tassignnode5 = var_nodearraylist5;
283 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
284 cltype16 = type_nullable_parser_nodes__TAssign.color;
285 idtype17 = type_nullable_parser_nodes__TAssign.id;
286 if(var_tassignnode5 == NULL) {
287 var15 = 1;
288 } else {
289 if(cltype16 >= var_tassignnode5->type->table_size) {
290 var15 = 0;
291 } else {
292 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
293 }
294 }
295 if (!var15) {
296 fprintf(stderr, "Runtime error: %s", "Assert failed");
297 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25066);
298 show_backtrace(1);
299 }
300 var_pexprnode6 = var_nodearraylist7;
301 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
302 cltype19 = type_nullable_parser_nodes__AExpr.color;
303 idtype20 = type_nullable_parser_nodes__AExpr.id;
304 if(var_pexprnode6 == NULL) {
305 var18 = 1;
306 } else {
307 if(cltype19 >= var_pexprnode6->type->table_size) {
308 var18 = 0;
309 } else {
310 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
311 }
312 }
313 if (!var18) {
314 fprintf(stderr, "Runtime error: %s", "Assert failed");
315 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25068);
316 show_backtrace(1);
317 }
318 var_pannotationsnode7 = var_nodearraylist3;
319 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
320 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
321 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
322 if(var_pannotationsnode7 == NULL) {
323 var21 = 1;
324 } else {
325 if(cltype22 >= var_pannotationsnode7->type->table_size) {
326 var21 = 0;
327 } else {
328 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
329 }
330 }
331 if (!var21) {
332 fprintf(stderr, "Runtime error: %s", "Assert failed");
333 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25070);
334 show_backtrace(1);
335 }
336 var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
337 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var24, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on <var24:AVardeclExpr>*/;
338 var_pexprnode1 = var24;
339 var_node_list = var_pexprnode1;
340 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction653> */
341 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
342 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
343 RET_LABEL:;
344 }
345 /* method parser#ReduceAction653#action for (self: Object, Parser) */
346 void VIRTUAL_parser__ReduceAction653__action(val* self, val* p0) {
347 parser__ReduceAction653__action(self, p0);
348 RET_LABEL:;
349 }
350 /* method parser#ReduceAction654#action for (self: ReduceAction654, Parser) */
351 void parser__ReduceAction654__action(val* self, val* p0) {
352 val* var_p /* var p: Parser */;
353 val* var /* : null */;
354 val* var_node_list /* var node_list: nullable Object */;
355 val* var1 /* : nullable Object */;
356 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
357 val* var2 /* : nullable Object */;
358 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
359 val* var3 /* : nullable Object */;
360 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
361 val* var4 /* : nullable Object */;
362 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
363 val* var5 /* : nullable Object */;
364 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
365 val* var6 /* : nullable Object */;
366 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
367 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
368 short int var7 /* : Bool */;
369 int cltype;
370 int idtype;
371 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
372 short int var8 /* : Bool */;
373 int cltype9;
374 int idtype10;
375 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
376 short int var11 /* : Bool */;
377 int cltype12;
378 int idtype13;
379 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
380 short int var14 /* : Bool */;
381 int cltype15;
382 int idtype16;
383 val* var17 /* : AAttrAssignExpr */;
384 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
385 long var18 /* : Int */;
386 long var19 /* : Int */;
387 var_p = p0;
388 var = NULL;
389 var_node_list = var;
390 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
391 var_nodearraylist6 = var1;
392 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
393 var_nodearraylist5 = var2;
394 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
395 var_nodearraylist4 = var3;
396 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
397 var_nodearraylist3 = var4;
398 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
399 var_nodearraylist2 = var5;
400 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
401 var_nodearraylist1 = var6;
402 var_pexprnode2 = var_nodearraylist1;
403 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
404 cltype = type_nullable_parser_nodes__AExpr.color;
405 idtype = type_nullable_parser_nodes__AExpr.id;
406 if(var_pexprnode2 == NULL) {
407 var7 = 1;
408 } else {
409 if(cltype >= var_pexprnode2->type->table_size) {
410 var7 = 0;
411 } else {
412 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
413 }
414 }
415 if (!var7) {
416 fprintf(stderr, "Runtime error: %s", "Assert failed");
417 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25095);
418 show_backtrace(1);
419 }
420 var_tattridnode3 = var_nodearraylist4;
421 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
422 cltype9 = type_nullable_parser_nodes__TAttrid.color;
423 idtype10 = type_nullable_parser_nodes__TAttrid.id;
424 if(var_tattridnode3 == NULL) {
425 var8 = 1;
426 } else {
427 if(cltype9 >= var_tattridnode3->type->table_size) {
428 var8 = 0;
429 } else {
430 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
431 }
432 }
433 if (!var8) {
434 fprintf(stderr, "Runtime error: %s", "Assert failed");
435 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25097);
436 show_backtrace(1);
437 }
438 var_tassignnode4 = var_nodearraylist5;
439 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
440 cltype12 = type_nullable_parser_nodes__TAssign.color;
441 idtype13 = type_nullable_parser_nodes__TAssign.id;
442 if(var_tassignnode4 == NULL) {
443 var11 = 1;
444 } else {
445 if(cltype12 >= var_tassignnode4->type->table_size) {
446 var11 = 0;
447 } else {
448 var11 = var_tassignnode4->type->type_table[cltype12] == idtype13;
449 }
450 }
451 if (!var11) {
452 fprintf(stderr, "Runtime error: %s", "Assert failed");
453 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25099);
454 show_backtrace(1);
455 }
456 var_pexprnode5 = var_nodearraylist6;
457 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
458 cltype15 = type_nullable_parser_nodes__AExpr.color;
459 idtype16 = type_nullable_parser_nodes__AExpr.id;
460 if(var_pexprnode5 == NULL) {
461 var14 = 1;
462 } else {
463 if(cltype15 >= var_pexprnode5->type->table_size) {
464 var14 = 0;
465 } else {
466 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
467 }
468 }
469 if (!var14) {
470 fprintf(stderr, "Runtime error: %s", "Assert failed");
471 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25101);
472 show_backtrace(1);
473 }
474 var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
475 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var17:AAttrAssignExpr>*/;
476 var_pexprnode1 = var17;
477 var_node_list = var_pexprnode1;
478 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction654> */
479 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
480 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
481 RET_LABEL:;
482 }
483 /* method parser#ReduceAction654#action for (self: Object, Parser) */
484 void VIRTUAL_parser__ReduceAction654__action(val* self, val* p0) {
485 parser__ReduceAction654__action(self, p0);
486 RET_LABEL:;
487 }
488 /* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */
489 void parser__ReduceAction655__action(val* self, val* p0) {
490 val* var_p /* var p: Parser */;
491 val* var /* : null */;
492 val* var_node_list /* var node_list: nullable Object */;
493 val* var1 /* : nullable Object */;
494 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
495 val* var2 /* : nullable Object */;
496 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
497 val* var3 /* : nullable Object */;
498 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
499 val* var4 /* : AImplicitSelfExpr */;
500 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
501 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
502 short int var5 /* : Bool */;
503 int cltype;
504 int idtype;
505 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
506 short int var6 /* : Bool */;
507 int cltype7;
508 int idtype8;
509 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
510 short int var9 /* : Bool */;
511 int cltype10;
512 int idtype11;
513 val* var12 /* : AAttrAssignExpr */;
514 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
515 long var13 /* : Int */;
516 long var14 /* : Int */;
517 var_p = p0;
518 var = NULL;
519 var_node_list = var;
520 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
521 var_nodearraylist3 = var1;
522 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
523 var_nodearraylist2 = var2;
524 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
525 var_nodearraylist1 = var3;
526 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
527 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
528 var_pexprnode2 = var4;
529 var_tattridnode3 = var_nodearraylist1;
530 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
531 cltype = type_nullable_parser_nodes__TAttrid.color;
532 idtype = type_nullable_parser_nodes__TAttrid.id;
533 if(var_tattridnode3 == NULL) {
534 var5 = 1;
535 } else {
536 if(cltype >= var_tattridnode3->type->table_size) {
537 var5 = 0;
538 } else {
539 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
540 }
541 }
542 if (!var5) {
543 fprintf(stderr, "Runtime error: %s", "Assert failed");
544 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25122);
545 show_backtrace(1);
546 }
547 var_tassignnode4 = var_nodearraylist2;
548 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
549 cltype7 = type_nullable_parser_nodes__TAssign.color;
550 idtype8 = type_nullable_parser_nodes__TAssign.id;
551 if(var_tassignnode4 == NULL) {
552 var6 = 1;
553 } else {
554 if(cltype7 >= var_tassignnode4->type->table_size) {
555 var6 = 0;
556 } else {
557 var6 = var_tassignnode4->type->type_table[cltype7] == idtype8;
558 }
559 }
560 if (!var6) {
561 fprintf(stderr, "Runtime error: %s", "Assert failed");
562 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25124);
563 show_backtrace(1);
564 }
565 var_pexprnode5 = var_nodearraylist3;
566 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
567 cltype10 = type_nullable_parser_nodes__AExpr.color;
568 idtype11 = type_nullable_parser_nodes__AExpr.id;
569 if(var_pexprnode5 == NULL) {
570 var9 = 1;
571 } else {
572 if(cltype10 >= var_pexprnode5->type->table_size) {
573 var9 = 0;
574 } else {
575 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
576 }
577 }
578 if (!var9) {
579 fprintf(stderr, "Runtime error: %s", "Assert failed");
580 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25126);
581 show_backtrace(1);
582 }
583 var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
584 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var12:AAttrAssignExpr>*/;
585 var_pexprnode1 = var12;
586 var_node_list = var_pexprnode1;
587 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction655> */
588 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
589 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
590 RET_LABEL:;
591 }
592 /* method parser#ReduceAction655#action for (self: Object, Parser) */
593 void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) {
594 parser__ReduceAction655__action(self, p0);
595 RET_LABEL:;
596 }
597 /* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */
598 void parser__ReduceAction656__action(val* self, val* p0) {
599 val* var_p /* var p: Parser */;
600 val* var /* : null */;
601 val* var_node_list /* var node_list: nullable Object */;
602 val* var1 /* : nullable Object */;
603 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
604 val* var2 /* : nullable Object */;
605 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
606 val* var3 /* : nullable Object */;
607 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
608 val* var4 /* : nullable Object */;
609 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
610 val* var5 /* : nullable Object */;
611 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
612 val* var6 /* : nullable Object */;
613 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
614 val* var7 /* : nullable Object */;
615 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
616 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
617 short int var8 /* : Bool */;
618 int cltype;
619 int idtype;
620 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
621 short int var9 /* : Bool */;
622 int cltype10;
623 int idtype11;
624 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
625 short int var12 /* : Bool */;
626 int cltype13;
627 int idtype14;
628 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
629 short int var15 /* : Bool */;
630 int cltype16;
631 int idtype17;
632 val* var18 /* : AAttrAssignExpr */;
633 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
634 long var19 /* : Int */;
635 long var20 /* : Int */;
636 var_p = p0;
637 var = NULL;
638 var_node_list = var;
639 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
640 var_nodearraylist7 = var1;
641 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
642 var_nodearraylist6 = var2;
643 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
644 var_nodearraylist5 = var3;
645 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
646 var_nodearraylist4 = var4;
647 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
648 var_nodearraylist3 = var5;
649 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
650 var_nodearraylist2 = var6;
651 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
652 var_nodearraylist1 = var7;
653 var_pexprnode2 = var_nodearraylist1;
654 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
655 cltype = type_nullable_parser_nodes__AExpr.color;
656 idtype = type_nullable_parser_nodes__AExpr.id;
657 if(var_pexprnode2 == NULL) {
658 var8 = 1;
659 } else {
660 if(cltype >= var_pexprnode2->type->table_size) {
661 var8 = 0;
662 } else {
663 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
664 }
665 }
666 if (!var8) {
667 fprintf(stderr, "Runtime error: %s", "Assert failed");
668 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25150);
669 show_backtrace(1);
670 }
671 var_tattridnode3 = var_nodearraylist5;
672 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
673 cltype10 = type_nullable_parser_nodes__TAttrid.color;
674 idtype11 = type_nullable_parser_nodes__TAttrid.id;
675 if(var_tattridnode3 == NULL) {
676 var9 = 1;
677 } else {
678 if(cltype10 >= var_tattridnode3->type->table_size) {
679 var9 = 0;
680 } else {
681 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
682 }
683 }
684 if (!var9) {
685 fprintf(stderr, "Runtime error: %s", "Assert failed");
686 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25152);
687 show_backtrace(1);
688 }
689 var_tassignnode4 = var_nodearraylist6;
690 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
691 cltype13 = type_nullable_parser_nodes__TAssign.color;
692 idtype14 = type_nullable_parser_nodes__TAssign.id;
693 if(var_tassignnode4 == NULL) {
694 var12 = 1;
695 } else {
696 if(cltype13 >= var_tassignnode4->type->table_size) {
697 var12 = 0;
698 } else {
699 var12 = var_tassignnode4->type->type_table[cltype13] == idtype14;
700 }
701 }
702 if (!var12) {
703 fprintf(stderr, "Runtime error: %s", "Assert failed");
704 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25154);
705 show_backtrace(1);
706 }
707 var_pexprnode5 = var_nodearraylist7;
708 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
709 cltype16 = type_nullable_parser_nodes__AExpr.color;
710 idtype17 = type_nullable_parser_nodes__AExpr.id;
711 if(var_pexprnode5 == NULL) {
712 var15 = 1;
713 } else {
714 if(cltype16 >= var_pexprnode5->type->table_size) {
715 var15 = 0;
716 } else {
717 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
718 }
719 }
720 if (!var15) {
721 fprintf(stderr, "Runtime error: %s", "Assert failed");
722 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25156);
723 show_backtrace(1);
724 }
725 var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
726 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var18:AAttrAssignExpr>*/;
727 var_pexprnode1 = var18;
728 var_node_list = var_pexprnode1;
729 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction656> */
730 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
731 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
732 RET_LABEL:;
733 }
734 /* method parser#ReduceAction656#action for (self: Object, Parser) */
735 void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) {
736 parser__ReduceAction656__action(self, p0);
737 RET_LABEL:;
738 }
739 /* method parser#ReduceAction657#action for (self: ReduceAction657, Parser) */
740 void parser__ReduceAction657__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
746 val* var2 /* : nullable Object */;
747 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
748 val* var3 /* : nullable Object */;
749 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
750 val* var4 /* : nullable Object */;
751 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
752 val* var5 /* : nullable Object */;
753 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
754 val* var6 /* : nullable Object */;
755 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
756 val* var7 /* : nullable Object */;
757 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
758 val* var8 /* : nullable Object */;
759 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
760 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
761 short int var9 /* : Bool */;
762 int cltype;
763 int idtype;
764 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
765 short int var10 /* : Bool */;
766 int cltype11;
767 int idtype12;
768 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
769 short int var13 /* : Bool */;
770 int cltype14;
771 int idtype15;
772 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
773 short int var16 /* : Bool */;
774 int cltype17;
775 int idtype18;
776 val* var19 /* : AAttrAssignExpr */;
777 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
778 long var20 /* : Int */;
779 long var21 /* : Int */;
780 var_p = p0;
781 var = NULL;
782 var_node_list = var;
783 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
784 var_nodearraylist8 = var1;
785 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
786 var_nodearraylist7 = var2;
787 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
788 var_nodearraylist6 = var3;
789 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
790 var_nodearraylist5 = var4;
791 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
792 var_nodearraylist4 = var5;
793 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
794 var_nodearraylist3 = var6;
795 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
796 var_nodearraylist2 = var7;
797 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
798 var_nodearraylist1 = var8;
799 var_pexprnode2 = var_nodearraylist1;
800 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
801 cltype = type_nullable_parser_nodes__AExpr.color;
802 idtype = type_nullable_parser_nodes__AExpr.id;
803 if(var_pexprnode2 == NULL) {
804 var9 = 1;
805 } else {
806 if(cltype >= var_pexprnode2->type->table_size) {
807 var9 = 0;
808 } else {
809 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
810 }
811 }
812 if (!var9) {
813 fprintf(stderr, "Runtime error: %s", "Assert failed");
814 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25181);
815 show_backtrace(1);
816 }
817 var_tattridnode3 = var_nodearraylist6;
818 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
819 cltype11 = type_nullable_parser_nodes__TAttrid.color;
820 idtype12 = type_nullable_parser_nodes__TAttrid.id;
821 if(var_tattridnode3 == NULL) {
822 var10 = 1;
823 } else {
824 if(cltype11 >= var_tattridnode3->type->table_size) {
825 var10 = 0;
826 } else {
827 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
828 }
829 }
830 if (!var10) {
831 fprintf(stderr, "Runtime error: %s", "Assert failed");
832 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25183);
833 show_backtrace(1);
834 }
835 var_tassignnode4 = var_nodearraylist7;
836 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
837 cltype14 = type_nullable_parser_nodes__TAssign.color;
838 idtype15 = type_nullable_parser_nodes__TAssign.id;
839 if(var_tassignnode4 == NULL) {
840 var13 = 1;
841 } else {
842 if(cltype14 >= var_tassignnode4->type->table_size) {
843 var13 = 0;
844 } else {
845 var13 = var_tassignnode4->type->type_table[cltype14] == idtype15;
846 }
847 }
848 if (!var13) {
849 fprintf(stderr, "Runtime error: %s", "Assert failed");
850 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25185);
851 show_backtrace(1);
852 }
853 var_pexprnode5 = var_nodearraylist8;
854 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
855 cltype17 = type_nullable_parser_nodes__AExpr.color;
856 idtype18 = type_nullable_parser_nodes__AExpr.id;
857 if(var_pexprnode5 == NULL) {
858 var16 = 1;
859 } else {
860 if(cltype17 >= var_pexprnode5->type->table_size) {
861 var16 = 0;
862 } else {
863 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
864 }
865 }
866 if (!var16) {
867 fprintf(stderr, "Runtime error: %s", "Assert failed");
868 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25187);
869 show_backtrace(1);
870 }
871 var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
872 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var19:AAttrAssignExpr>*/;
873 var_pexprnode1 = var19;
874 var_node_list = var_pexprnode1;
875 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction657> */
876 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
877 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
878 RET_LABEL:;
879 }
880 /* method parser#ReduceAction657#action for (self: Object, Parser) */
881 void VIRTUAL_parser__ReduceAction657__action(val* self, val* p0) {
882 parser__ReduceAction657__action(self, p0);
883 RET_LABEL:;
884 }
885 /* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */
886 void parser__ReduceAction659__action(val* self, val* p0) {
887 val* var_p /* var p: Parser */;
888 val* var /* : null */;
889 val* var_node_list /* var node_list: nullable Object */;
890 val* var1 /* : nullable Object */;
891 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
892 val* var2 /* : nullable Object */;
893 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
894 val* var3 /* : nullable Object */;
895 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
896 val* var4 /* : nullable Object */;
897 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
898 val* var5 /* : AImplicitSelfExpr */;
899 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
900 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
901 short int var6 /* : Bool */;
902 int cltype;
903 int idtype;
904 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
905 short int var7 /* : Bool */;
906 int cltype8;
907 int idtype9;
908 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
909 short int var10 /* : Bool */;
910 int cltype11;
911 int idtype12;
912 val* var13 /* : AAttrAssignExpr */;
913 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
914 long var14 /* : Int */;
915 long var15 /* : Int */;
916 var_p = p0;
917 var = NULL;
918 var_node_list = var;
919 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
920 var_nodearraylist4 = var1;
921 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
922 var_nodearraylist3 = var2;
923 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
924 var_nodearraylist2 = var3;
925 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
926 var_nodearraylist1 = var4;
927 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
928 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
929 var_pexprnode2 = var5;
930 var_tattridnode3 = var_nodearraylist2;
931 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
932 cltype = type_nullable_parser_nodes__TAttrid.color;
933 idtype = type_nullable_parser_nodes__TAttrid.id;
934 if(var_tattridnode3 == NULL) {
935 var6 = 1;
936 } else {
937 if(cltype >= var_tattridnode3->type->table_size) {
938 var6 = 0;
939 } else {
940 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
941 }
942 }
943 if (!var6) {
944 fprintf(stderr, "Runtime error: %s", "Assert failed");
945 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25209);
946 show_backtrace(1);
947 }
948 var_tassignnode4 = var_nodearraylist3;
949 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
950 cltype8 = type_nullable_parser_nodes__TAssign.color;
951 idtype9 = type_nullable_parser_nodes__TAssign.id;
952 if(var_tassignnode4 == NULL) {
953 var7 = 1;
954 } else {
955 if(cltype8 >= var_tassignnode4->type->table_size) {
956 var7 = 0;
957 } else {
958 var7 = var_tassignnode4->type->type_table[cltype8] == idtype9;
959 }
960 }
961 if (!var7) {
962 fprintf(stderr, "Runtime error: %s", "Assert failed");
963 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25211);
964 show_backtrace(1);
965 }
966 var_pexprnode5 = var_nodearraylist4;
967 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
968 cltype11 = type_nullable_parser_nodes__AExpr.color;
969 idtype12 = type_nullable_parser_nodes__AExpr.id;
970 if(var_pexprnode5 == NULL) {
971 var10 = 1;
972 } else {
973 if(cltype11 >= var_pexprnode5->type->table_size) {
974 var10 = 0;
975 } else {
976 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
977 }
978 }
979 if (!var10) {
980 fprintf(stderr, "Runtime error: %s", "Assert failed");
981 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25213);
982 show_backtrace(1);
983 }
984 var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
985 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var13:AAttrAssignExpr>*/;
986 var_pexprnode1 = var13;
987 var_node_list = var_pexprnode1;
988 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction659> */
989 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
990 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
991 RET_LABEL:;
992 }
993 /* method parser#ReduceAction659#action for (self: Object, Parser) */
994 void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) {
995 parser__ReduceAction659__action(self, p0);
996 RET_LABEL:;
997 }
998 /* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */
999 void parser__ReduceAction660__action(val* self, val* p0) {
1000 val* var_p /* var p: Parser */;
1001 val* var /* : null */;
1002 val* var_node_list /* var node_list: nullable Object */;
1003 val* var1 /* : nullable Object */;
1004 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1005 val* var2 /* : nullable Object */;
1006 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1007 val* var3 /* : nullable Object */;
1008 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1009 val* var4 /* : nullable Object */;
1010 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1011 val* var5 /* : nullable Object */;
1012 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1013 val* var6 /* : AImplicitSelfExpr */;
1014 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1015 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1016 short int var7 /* : Bool */;
1017 int cltype;
1018 int idtype;
1019 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
1020 short int var8 /* : Bool */;
1021 int cltype9;
1022 int idtype10;
1023 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1024 short int var11 /* : Bool */;
1025 int cltype12;
1026 int idtype13;
1027 val* var14 /* : AAttrAssignExpr */;
1028 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
1029 long var15 /* : Int */;
1030 long var16 /* : Int */;
1031 var_p = p0;
1032 var = NULL;
1033 var_node_list = var;
1034 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1035 var_nodearraylist5 = var1;
1036 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1037 var_nodearraylist4 = var2;
1038 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1039 var_nodearraylist3 = var3;
1040 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1041 var_nodearraylist2 = var4;
1042 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1043 var_nodearraylist1 = var5;
1044 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1045 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
1046 var_pexprnode2 = var6;
1047 var_tattridnode3 = var_nodearraylist3;
1048 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1049 cltype = type_nullable_parser_nodes__TAttrid.color;
1050 idtype = type_nullable_parser_nodes__TAttrid.id;
1051 if(var_tattridnode3 == NULL) {
1052 var7 = 1;
1053 } else {
1054 if(cltype >= var_tattridnode3->type->table_size) {
1055 var7 = 0;
1056 } else {
1057 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
1058 }
1059 }
1060 if (!var7) {
1061 fprintf(stderr, "Runtime error: %s", "Assert failed");
1062 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25236);
1063 show_backtrace(1);
1064 }
1065 var_tassignnode4 = var_nodearraylist4;
1066 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
1067 cltype9 = type_nullable_parser_nodes__TAssign.color;
1068 idtype10 = type_nullable_parser_nodes__TAssign.id;
1069 if(var_tassignnode4 == NULL) {
1070 var8 = 1;
1071 } else {
1072 if(cltype9 >= var_tassignnode4->type->table_size) {
1073 var8 = 0;
1074 } else {
1075 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
1076 }
1077 }
1078 if (!var8) {
1079 fprintf(stderr, "Runtime error: %s", "Assert failed");
1080 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25238);
1081 show_backtrace(1);
1082 }
1083 var_pexprnode5 = var_nodearraylist5;
1084 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1085 cltype12 = type_nullable_parser_nodes__AExpr.color;
1086 idtype13 = type_nullable_parser_nodes__AExpr.id;
1087 if(var_pexprnode5 == NULL) {
1088 var11 = 1;
1089 } else {
1090 if(cltype12 >= var_pexprnode5->type->table_size) {
1091 var11 = 0;
1092 } else {
1093 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
1094 }
1095 }
1096 if (!var11) {
1097 fprintf(stderr, "Runtime error: %s", "Assert failed");
1098 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25240);
1099 show_backtrace(1);
1100 }
1101 var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
1102 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrAssignExpr__init_aattrassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_tassignnode4, var_pexprnode5) /* init_aattrassignexpr on <var14:AAttrAssignExpr>*/;
1103 var_pexprnode1 = var14;
1104 var_node_list = var_pexprnode1;
1105 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction660> */
1106 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1107 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1108 RET_LABEL:;
1109 }
1110 /* method parser#ReduceAction660#action for (self: Object, Parser) */
1111 void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) {
1112 parser__ReduceAction660__action(self, p0);
1113 RET_LABEL:;
1114 }
1115 /* method parser#ReduceAction662#action for (self: ReduceAction662, Parser) */
1116 void parser__ReduceAction662__action(val* self, val* p0) {
1117 val* var_p /* var p: Parser */;
1118 val* var /* : null */;
1119 val* var_node_list /* var node_list: nullable Object */;
1120 val* var1 /* : nullable Object */;
1121 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1122 val* var2 /* : nullable Object */;
1123 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1124 val* var3 /* : nullable Object */;
1125 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1126 val* var4 /* : nullable Object */;
1127 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1128 val* var5 /* : nullable Object */;
1129 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1130 val* var6 /* : nullable Object */;
1131 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1132 val* var7 /* : nullable Object */;
1133 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1134 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1135 short int var8 /* : Bool */;
1136 int cltype;
1137 int idtype;
1138 val* var_tidnode3 /* var tidnode3: nullable Object */;
1139 short int var9 /* : Bool */;
1140 int cltype10;
1141 int idtype11;
1142 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1143 short int var12 /* : Bool */;
1144 int cltype13;
1145 int idtype14;
1146 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1147 short int var15 /* : Bool */;
1148 int cltype16;
1149 int idtype17;
1150 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1151 short int var18 /* : Bool */;
1152 int cltype19;
1153 int idtype20;
1154 val* var21 /* : ACallAssignExpr */;
1155 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1156 long var22 /* : Int */;
1157 long var23 /* : Int */;
1158 var_p = p0;
1159 var = NULL;
1160 var_node_list = var;
1161 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1162 var_nodearraylist7 = var1;
1163 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1164 var_nodearraylist6 = var2;
1165 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1166 var_nodearraylist5 = var3;
1167 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1168 var_nodearraylist4 = var4;
1169 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1170 var_nodearraylist3 = var5;
1171 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1172 var_nodearraylist2 = var6;
1173 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1174 var_nodearraylist1 = var7;
1175 var_pexprnode2 = var_nodearraylist1;
1176 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1177 cltype = type_nullable_parser_nodes__AExpr.color;
1178 idtype = type_nullable_parser_nodes__AExpr.id;
1179 if(var_pexprnode2 == NULL) {
1180 var8 = 1;
1181 } else {
1182 if(cltype >= var_pexprnode2->type->table_size) {
1183 var8 = 0;
1184 } else {
1185 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
1186 }
1187 }
1188 if (!var8) {
1189 fprintf(stderr, "Runtime error: %s", "Assert failed");
1190 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25264);
1191 show_backtrace(1);
1192 }
1193 var_tidnode3 = var_nodearraylist4;
1194 /* <var_tidnode3:nullable Object> isa nullable TId */
1195 cltype10 = type_nullable_parser_nodes__TId.color;
1196 idtype11 = type_nullable_parser_nodes__TId.id;
1197 if(var_tidnode3 == NULL) {
1198 var9 = 1;
1199 } else {
1200 if(cltype10 >= var_tidnode3->type->table_size) {
1201 var9 = 0;
1202 } else {
1203 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
1204 }
1205 }
1206 if (!var9) {
1207 fprintf(stderr, "Runtime error: %s", "Assert failed");
1208 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25266);
1209 show_backtrace(1);
1210 }
1211 var_pexprsnode4 = var_nodearraylist5;
1212 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1213 cltype13 = type_nullable_parser_nodes__AExprs.color;
1214 idtype14 = type_nullable_parser_nodes__AExprs.id;
1215 if(var_pexprsnode4 == NULL) {
1216 var12 = 1;
1217 } else {
1218 if(cltype13 >= var_pexprsnode4->type->table_size) {
1219 var12 = 0;
1220 } else {
1221 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
1222 }
1223 }
1224 if (!var12) {
1225 fprintf(stderr, "Runtime error: %s", "Assert failed");
1226 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25268);
1227 show_backtrace(1);
1228 }
1229 var_tassignnode5 = var_nodearraylist6;
1230 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1231 cltype16 = type_nullable_parser_nodes__TAssign.color;
1232 idtype17 = type_nullable_parser_nodes__TAssign.id;
1233 if(var_tassignnode5 == NULL) {
1234 var15 = 1;
1235 } else {
1236 if(cltype16 >= var_tassignnode5->type->table_size) {
1237 var15 = 0;
1238 } else {
1239 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
1240 }
1241 }
1242 if (!var15) {
1243 fprintf(stderr, "Runtime error: %s", "Assert failed");
1244 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25270);
1245 show_backtrace(1);
1246 }
1247 var_pexprnode6 = var_nodearraylist7;
1248 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1249 cltype19 = type_nullable_parser_nodes__AExpr.color;
1250 idtype20 = type_nullable_parser_nodes__AExpr.id;
1251 if(var_pexprnode6 == NULL) {
1252 var18 = 1;
1253 } else {
1254 if(cltype19 >= var_pexprnode6->type->table_size) {
1255 var18 = 0;
1256 } else {
1257 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
1258 }
1259 }
1260 if (!var18) {
1261 fprintf(stderr, "Runtime error: %s", "Assert failed");
1262 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25272);
1263 show_backtrace(1);
1264 }
1265 var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
1266 ((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var21:ACallAssignExpr>*/;
1267 var_pexprnode1 = var21;
1268 var_node_list = var_pexprnode1;
1269 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction662> */
1270 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
1271 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
1272 RET_LABEL:;
1273 }
1274 /* method parser#ReduceAction662#action for (self: Object, Parser) */
1275 void VIRTUAL_parser__ReduceAction662__action(val* self, val* p0) {
1276 parser__ReduceAction662__action(self, p0);
1277 RET_LABEL:;
1278 }
1279 /* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */
1280 void parser__ReduceAction663__action(val* self, val* p0) {
1281 val* var_p /* var p: Parser */;
1282 val* var /* : null */;
1283 val* var_node_list /* var node_list: nullable Object */;
1284 val* var1 /* : nullable Object */;
1285 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1286 val* var2 /* : nullable Object */;
1287 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1288 val* var3 /* : nullable Object */;
1289 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1290 val* var4 /* : nullable Object */;
1291 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1292 val* var5 /* : AImplicitSelfExpr */;
1293 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1294 val* var_tidnode3 /* var tidnode3: nullable Object */;
1295 short int var6 /* : Bool */;
1296 int cltype;
1297 int idtype;
1298 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1299 short int var7 /* : Bool */;
1300 int cltype8;
1301 int idtype9;
1302 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1303 short int var10 /* : Bool */;
1304 int cltype11;
1305 int idtype12;
1306 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1307 short int var13 /* : Bool */;
1308 int cltype14;
1309 int idtype15;
1310 val* var16 /* : ACallAssignExpr */;
1311 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1312 long var17 /* : Int */;
1313 long var18 /* : Int */;
1314 var_p = p0;
1315 var = NULL;
1316 var_node_list = var;
1317 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1318 var_nodearraylist4 = var1;
1319 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1320 var_nodearraylist3 = var2;
1321 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1322 var_nodearraylist2 = var3;
1323 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1324 var_nodearraylist1 = var4;
1325 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1326 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
1327 var_pexprnode2 = var5;
1328 var_tidnode3 = var_nodearraylist1;
1329 /* <var_tidnode3:nullable Object> isa nullable TId */
1330 cltype = type_nullable_parser_nodes__TId.color;
1331 idtype = type_nullable_parser_nodes__TId.id;
1332 if(var_tidnode3 == NULL) {
1333 var6 = 1;
1334 } else {
1335 if(cltype >= var_tidnode3->type->table_size) {
1336 var6 = 0;
1337 } else {
1338 var6 = var_tidnode3->type->type_table[cltype] == idtype;
1339 }
1340 }
1341 if (!var6) {
1342 fprintf(stderr, "Runtime error: %s", "Assert failed");
1343 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25295);
1344 show_backtrace(1);
1345 }
1346 var_pexprsnode4 = var_nodearraylist2;
1347 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1348 cltype8 = type_nullable_parser_nodes__AExprs.color;
1349 idtype9 = type_nullable_parser_nodes__AExprs.id;
1350 if(var_pexprsnode4 == NULL) {
1351 var7 = 1;
1352 } else {
1353 if(cltype8 >= var_pexprsnode4->type->table_size) {
1354 var7 = 0;
1355 } else {
1356 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
1357 }
1358 }
1359 if (!var7) {
1360 fprintf(stderr, "Runtime error: %s", "Assert failed");
1361 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25297);
1362 show_backtrace(1);
1363 }
1364 var_tassignnode5 = var_nodearraylist3;
1365 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1366 cltype11 = type_nullable_parser_nodes__TAssign.color;
1367 idtype12 = type_nullable_parser_nodes__TAssign.id;
1368 if(var_tassignnode5 == NULL) {
1369 var10 = 1;
1370 } else {
1371 if(cltype11 >= var_tassignnode5->type->table_size) {
1372 var10 = 0;
1373 } else {
1374 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
1375 }
1376 }
1377 if (!var10) {
1378 fprintf(stderr, "Runtime error: %s", "Assert failed");
1379 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25299);
1380 show_backtrace(1);
1381 }
1382 var_pexprnode6 = var_nodearraylist4;
1383 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1384 cltype14 = type_nullable_parser_nodes__AExpr.color;
1385 idtype15 = type_nullable_parser_nodes__AExpr.id;
1386 if(var_pexprnode6 == NULL) {
1387 var13 = 1;
1388 } else {
1389 if(cltype14 >= var_pexprnode6->type->table_size) {
1390 var13 = 0;
1391 } else {
1392 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
1393 }
1394 }
1395 if (!var13) {
1396 fprintf(stderr, "Runtime error: %s", "Assert failed");
1397 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25301);
1398 show_backtrace(1);
1399 }
1400 var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
1401 ((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var16:ACallAssignExpr>*/;
1402 var_pexprnode1 = var16;
1403 var_node_list = var_pexprnode1;
1404 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction663> */
1405 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1406 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1407 RET_LABEL:;
1408 }
1409 /* method parser#ReduceAction663#action for (self: Object, Parser) */
1410 void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) {
1411 parser__ReduceAction663__action(self, p0);
1412 RET_LABEL:;
1413 }
1414 /* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */
1415 void parser__ReduceAction664__action(val* self, val* p0) {
1416 val* var_p /* var p: Parser */;
1417 val* var /* : null */;
1418 val* var_node_list /* var node_list: nullable Object */;
1419 val* var1 /* : nullable Object */;
1420 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1421 val* var2 /* : nullable Object */;
1422 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1423 val* var3 /* : nullable Object */;
1424 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1425 val* var4 /* : nullable Object */;
1426 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1427 val* var5 /* : nullable Object */;
1428 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1429 val* var6 /* : nullable Object */;
1430 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1431 val* var7 /* : nullable Object */;
1432 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1433 val* var8 /* : nullable Object */;
1434 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1435 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1436 short int var9 /* : Bool */;
1437 int cltype;
1438 int idtype;
1439 val* var_tidnode3 /* var tidnode3: nullable Object */;
1440 short int var10 /* : Bool */;
1441 int cltype11;
1442 int idtype12;
1443 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1444 short int var13 /* : Bool */;
1445 int cltype14;
1446 int idtype15;
1447 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1448 short int var16 /* : Bool */;
1449 int cltype17;
1450 int idtype18;
1451 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1452 short int var19 /* : Bool */;
1453 int cltype20;
1454 int idtype21;
1455 val* var22 /* : ACallAssignExpr */;
1456 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1457 long var23 /* : Int */;
1458 long var24 /* : Int */;
1459 var_p = p0;
1460 var = NULL;
1461 var_node_list = var;
1462 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1463 var_nodearraylist8 = var1;
1464 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1465 var_nodearraylist7 = var2;
1466 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1467 var_nodearraylist6 = var3;
1468 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1469 var_nodearraylist5 = var4;
1470 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1471 var_nodearraylist4 = var5;
1472 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1473 var_nodearraylist3 = var6;
1474 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1475 var_nodearraylist2 = var7;
1476 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1477 var_nodearraylist1 = var8;
1478 var_pexprnode2 = var_nodearraylist1;
1479 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1480 cltype = type_nullable_parser_nodes__AExpr.color;
1481 idtype = type_nullable_parser_nodes__AExpr.id;
1482 if(var_pexprnode2 == NULL) {
1483 var9 = 1;
1484 } else {
1485 if(cltype >= var_pexprnode2->type->table_size) {
1486 var9 = 0;
1487 } else {
1488 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
1489 }
1490 }
1491 if (!var9) {
1492 fprintf(stderr, "Runtime error: %s", "Assert failed");
1493 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25327);
1494 show_backtrace(1);
1495 }
1496 var_tidnode3 = var_nodearraylist5;
1497 /* <var_tidnode3:nullable Object> isa nullable TId */
1498 cltype11 = type_nullable_parser_nodes__TId.color;
1499 idtype12 = type_nullable_parser_nodes__TId.id;
1500 if(var_tidnode3 == NULL) {
1501 var10 = 1;
1502 } else {
1503 if(cltype11 >= var_tidnode3->type->table_size) {
1504 var10 = 0;
1505 } else {
1506 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
1507 }
1508 }
1509 if (!var10) {
1510 fprintf(stderr, "Runtime error: %s", "Assert failed");
1511 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25329);
1512 show_backtrace(1);
1513 }
1514 var_pexprsnode4 = var_nodearraylist6;
1515 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1516 cltype14 = type_nullable_parser_nodes__AExprs.color;
1517 idtype15 = type_nullable_parser_nodes__AExprs.id;
1518 if(var_pexprsnode4 == NULL) {
1519 var13 = 1;
1520 } else {
1521 if(cltype14 >= var_pexprsnode4->type->table_size) {
1522 var13 = 0;
1523 } else {
1524 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
1525 }
1526 }
1527 if (!var13) {
1528 fprintf(stderr, "Runtime error: %s", "Assert failed");
1529 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25331);
1530 show_backtrace(1);
1531 }
1532 var_tassignnode5 = var_nodearraylist7;
1533 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1534 cltype17 = type_nullable_parser_nodes__TAssign.color;
1535 idtype18 = type_nullable_parser_nodes__TAssign.id;
1536 if(var_tassignnode5 == NULL) {
1537 var16 = 1;
1538 } else {
1539 if(cltype17 >= var_tassignnode5->type->table_size) {
1540 var16 = 0;
1541 } else {
1542 var16 = var_tassignnode5->type->type_table[cltype17] == idtype18;
1543 }
1544 }
1545 if (!var16) {
1546 fprintf(stderr, "Runtime error: %s", "Assert failed");
1547 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25333);
1548 show_backtrace(1);
1549 }
1550 var_pexprnode6 = var_nodearraylist8;
1551 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1552 cltype20 = type_nullable_parser_nodes__AExpr.color;
1553 idtype21 = type_nullable_parser_nodes__AExpr.id;
1554 if(var_pexprnode6 == NULL) {
1555 var19 = 1;
1556 } else {
1557 if(cltype20 >= var_pexprnode6->type->table_size) {
1558 var19 = 0;
1559 } else {
1560 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
1561 }
1562 }
1563 if (!var19) {
1564 fprintf(stderr, "Runtime error: %s", "Assert failed");
1565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25335);
1566 show_backtrace(1);
1567 }
1568 var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
1569 ((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var22:ACallAssignExpr>*/;
1570 var_pexprnode1 = var22;
1571 var_node_list = var_pexprnode1;
1572 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction664> */
1573 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
1574 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
1575 RET_LABEL:;
1576 }
1577 /* method parser#ReduceAction664#action for (self: Object, Parser) */
1578 void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) {
1579 parser__ReduceAction664__action(self, p0);
1580 RET_LABEL:;
1581 }
1582 /* method parser#ReduceAction665#action for (self: ReduceAction665, Parser) */
1583 void parser__ReduceAction665__action(val* self, val* p0) {
1584 val* var_p /* var p: Parser */;
1585 val* var /* : null */;
1586 val* var_node_list /* var node_list: nullable Object */;
1587 val* var1 /* : nullable Object */;
1588 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1589 val* var2 /* : nullable Object */;
1590 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1591 val* var3 /* : nullable Object */;
1592 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1593 val* var4 /* : nullable Object */;
1594 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1595 val* var5 /* : nullable Object */;
1596 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1597 val* var6 /* : nullable Object */;
1598 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1599 val* var7 /* : nullable Object */;
1600 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1601 val* var8 /* : nullable Object */;
1602 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1603 val* var9 /* : nullable Object */;
1604 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1605 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1606 short int var10 /* : Bool */;
1607 int cltype;
1608 int idtype;
1609 val* var_tidnode3 /* var tidnode3: nullable Object */;
1610 short int var11 /* : Bool */;
1611 int cltype12;
1612 int idtype13;
1613 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1614 short int var14 /* : Bool */;
1615 int cltype15;
1616 int idtype16;
1617 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1618 short int var17 /* : Bool */;
1619 int cltype18;
1620 int idtype19;
1621 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1622 short int var20 /* : Bool */;
1623 int cltype21;
1624 int idtype22;
1625 val* var23 /* : ACallAssignExpr */;
1626 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1627 long var24 /* : Int */;
1628 long var25 /* : Int */;
1629 var_p = p0;
1630 var = NULL;
1631 var_node_list = var;
1632 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1633 var_nodearraylist9 = var1;
1634 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1635 var_nodearraylist8 = var2;
1636 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1637 var_nodearraylist7 = var3;
1638 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1639 var_nodearraylist6 = var4;
1640 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1641 var_nodearraylist5 = var5;
1642 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1643 var_nodearraylist4 = var6;
1644 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1645 var_nodearraylist3 = var7;
1646 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1647 var_nodearraylist2 = var8;
1648 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1649 var_nodearraylist1 = var9;
1650 var_pexprnode2 = var_nodearraylist1;
1651 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1652 cltype = type_nullable_parser_nodes__AExpr.color;
1653 idtype = type_nullable_parser_nodes__AExpr.id;
1654 if(var_pexprnode2 == NULL) {
1655 var10 = 1;
1656 } else {
1657 if(cltype >= var_pexprnode2->type->table_size) {
1658 var10 = 0;
1659 } else {
1660 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
1661 }
1662 }
1663 if (!var10) {
1664 fprintf(stderr, "Runtime error: %s", "Assert failed");
1665 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25362);
1666 show_backtrace(1);
1667 }
1668 var_tidnode3 = var_nodearraylist6;
1669 /* <var_tidnode3:nullable Object> isa nullable TId */
1670 cltype12 = type_nullable_parser_nodes__TId.color;
1671 idtype13 = type_nullable_parser_nodes__TId.id;
1672 if(var_tidnode3 == NULL) {
1673 var11 = 1;
1674 } else {
1675 if(cltype12 >= var_tidnode3->type->table_size) {
1676 var11 = 0;
1677 } else {
1678 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
1679 }
1680 }
1681 if (!var11) {
1682 fprintf(stderr, "Runtime error: %s", "Assert failed");
1683 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25364);
1684 show_backtrace(1);
1685 }
1686 var_pexprsnode4 = var_nodearraylist7;
1687 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1688 cltype15 = type_nullable_parser_nodes__AExprs.color;
1689 idtype16 = type_nullable_parser_nodes__AExprs.id;
1690 if(var_pexprsnode4 == NULL) {
1691 var14 = 1;
1692 } else {
1693 if(cltype15 >= var_pexprsnode4->type->table_size) {
1694 var14 = 0;
1695 } else {
1696 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
1697 }
1698 }
1699 if (!var14) {
1700 fprintf(stderr, "Runtime error: %s", "Assert failed");
1701 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25366);
1702 show_backtrace(1);
1703 }
1704 var_tassignnode5 = var_nodearraylist8;
1705 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1706 cltype18 = type_nullable_parser_nodes__TAssign.color;
1707 idtype19 = type_nullable_parser_nodes__TAssign.id;
1708 if(var_tassignnode5 == NULL) {
1709 var17 = 1;
1710 } else {
1711 if(cltype18 >= var_tassignnode5->type->table_size) {
1712 var17 = 0;
1713 } else {
1714 var17 = var_tassignnode5->type->type_table[cltype18] == idtype19;
1715 }
1716 }
1717 if (!var17) {
1718 fprintf(stderr, "Runtime error: %s", "Assert failed");
1719 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25368);
1720 show_backtrace(1);
1721 }
1722 var_pexprnode6 = var_nodearraylist9;
1723 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1724 cltype21 = type_nullable_parser_nodes__AExpr.color;
1725 idtype22 = type_nullable_parser_nodes__AExpr.id;
1726 if(var_pexprnode6 == NULL) {
1727 var20 = 1;
1728 } else {
1729 if(cltype21 >= var_pexprnode6->type->table_size) {
1730 var20 = 0;
1731 } else {
1732 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
1733 }
1734 }
1735 if (!var20) {
1736 fprintf(stderr, "Runtime error: %s", "Assert failed");
1737 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25370);
1738 show_backtrace(1);
1739 }
1740 var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
1741 ((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var23:ACallAssignExpr>*/;
1742 var_pexprnode1 = var23;
1743 var_node_list = var_pexprnode1;
1744 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction665> */
1745 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
1746 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
1747 RET_LABEL:;
1748 }
1749 /* method parser#ReduceAction665#action for (self: Object, Parser) */
1750 void VIRTUAL_parser__ReduceAction665__action(val* self, val* p0) {
1751 parser__ReduceAction665__action(self, p0);
1752 RET_LABEL:;
1753 }
1754 /* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */
1755 void parser__ReduceAction667__action(val* self, val* p0) {
1756 val* var_p /* var p: Parser */;
1757 val* var /* : null */;
1758 val* var_node_list /* var node_list: nullable Object */;
1759 val* var1 /* : nullable Object */;
1760 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1761 val* var2 /* : nullable Object */;
1762 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1763 val* var3 /* : nullable Object */;
1764 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1765 val* var4 /* : nullable Object */;
1766 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1767 val* var5 /* : nullable Object */;
1768 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1769 val* var6 /* : AImplicitSelfExpr */;
1770 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1771 val* var_tidnode3 /* var tidnode3: nullable Object */;
1772 short int var7 /* : Bool */;
1773 int cltype;
1774 int idtype;
1775 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1776 short int var8 /* : Bool */;
1777 int cltype9;
1778 int idtype10;
1779 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1780 short int var11 /* : Bool */;
1781 int cltype12;
1782 int idtype13;
1783 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1784 short int var14 /* : Bool */;
1785 int cltype15;
1786 int idtype16;
1787 val* var17 /* : ACallAssignExpr */;
1788 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1789 long var18 /* : Int */;
1790 long var19 /* : Int */;
1791 var_p = p0;
1792 var = NULL;
1793 var_node_list = var;
1794 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1795 var_nodearraylist5 = var1;
1796 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1797 var_nodearraylist4 = var2;
1798 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1799 var_nodearraylist3 = var3;
1800 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1801 var_nodearraylist2 = var4;
1802 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1803 var_nodearraylist1 = var5;
1804 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1805 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
1806 var_pexprnode2 = var6;
1807 var_tidnode3 = var_nodearraylist2;
1808 /* <var_tidnode3:nullable Object> isa nullable TId */
1809 cltype = type_nullable_parser_nodes__TId.color;
1810 idtype = type_nullable_parser_nodes__TId.id;
1811 if(var_tidnode3 == NULL) {
1812 var7 = 1;
1813 } else {
1814 if(cltype >= var_tidnode3->type->table_size) {
1815 var7 = 0;
1816 } else {
1817 var7 = var_tidnode3->type->type_table[cltype] == idtype;
1818 }
1819 }
1820 if (!var7) {
1821 fprintf(stderr, "Runtime error: %s", "Assert failed");
1822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25394);
1823 show_backtrace(1);
1824 }
1825 var_pexprsnode4 = var_nodearraylist3;
1826 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1827 cltype9 = type_nullable_parser_nodes__AExprs.color;
1828 idtype10 = type_nullable_parser_nodes__AExprs.id;
1829 if(var_pexprsnode4 == NULL) {
1830 var8 = 1;
1831 } else {
1832 if(cltype9 >= var_pexprsnode4->type->table_size) {
1833 var8 = 0;
1834 } else {
1835 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
1836 }
1837 }
1838 if (!var8) {
1839 fprintf(stderr, "Runtime error: %s", "Assert failed");
1840 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25396);
1841 show_backtrace(1);
1842 }
1843 var_tassignnode5 = var_nodearraylist4;
1844 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1845 cltype12 = type_nullable_parser_nodes__TAssign.color;
1846 idtype13 = type_nullable_parser_nodes__TAssign.id;
1847 if(var_tassignnode5 == NULL) {
1848 var11 = 1;
1849 } else {
1850 if(cltype12 >= var_tassignnode5->type->table_size) {
1851 var11 = 0;
1852 } else {
1853 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
1854 }
1855 }
1856 if (!var11) {
1857 fprintf(stderr, "Runtime error: %s", "Assert failed");
1858 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25398);
1859 show_backtrace(1);
1860 }
1861 var_pexprnode6 = var_nodearraylist5;
1862 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1863 cltype15 = type_nullable_parser_nodes__AExpr.color;
1864 idtype16 = type_nullable_parser_nodes__AExpr.id;
1865 if(var_pexprnode6 == NULL) {
1866 var14 = 1;
1867 } else {
1868 if(cltype15 >= var_pexprnode6->type->table_size) {
1869 var14 = 0;
1870 } else {
1871 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
1872 }
1873 }
1874 if (!var14) {
1875 fprintf(stderr, "Runtime error: %s", "Assert failed");
1876 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25400);
1877 show_backtrace(1);
1878 }
1879 var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
1880 ((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var17:ACallAssignExpr>*/;
1881 var_pexprnode1 = var17;
1882 var_node_list = var_pexprnode1;
1883 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction667> */
1884 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
1885 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
1886 RET_LABEL:;
1887 }
1888 /* method parser#ReduceAction667#action for (self: Object, Parser) */
1889 void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) {
1890 parser__ReduceAction667__action(self, p0);
1891 RET_LABEL:;
1892 }
1893 /* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */
1894 void parser__ReduceAction668__action(val* self, val* p0) {
1895 val* var_p /* var p: Parser */;
1896 val* var /* : null */;
1897 val* var_node_list /* var node_list: nullable Object */;
1898 val* var1 /* : nullable Object */;
1899 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1900 val* var2 /* : nullable Object */;
1901 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1902 val* var3 /* : nullable Object */;
1903 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1904 val* var4 /* : nullable Object */;
1905 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1906 val* var5 /* : nullable Object */;
1907 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1908 val* var6 /* : nullable Object */;
1909 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1910 val* var7 /* : AImplicitSelfExpr */;
1911 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1912 val* var_tidnode3 /* var tidnode3: nullable Object */;
1913 short int var8 /* : Bool */;
1914 int cltype;
1915 int idtype;
1916 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1917 short int var9 /* : Bool */;
1918 int cltype10;
1919 int idtype11;
1920 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1921 short int var12 /* : Bool */;
1922 int cltype13;
1923 int idtype14;
1924 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1925 short int var15 /* : Bool */;
1926 int cltype16;
1927 int idtype17;
1928 val* var18 /* : ACallAssignExpr */;
1929 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
1930 long var19 /* : Int */;
1931 long var20 /* : Int */;
1932 var_p = p0;
1933 var = NULL;
1934 var_node_list = var;
1935 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1936 var_nodearraylist6 = var1;
1937 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1938 var_nodearraylist5 = var2;
1939 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1940 var_nodearraylist4 = var3;
1941 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1942 var_nodearraylist3 = var4;
1943 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1944 var_nodearraylist2 = var5;
1945 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1946 var_nodearraylist1 = var6;
1947 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1948 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
1949 var_pexprnode2 = var7;
1950 var_tidnode3 = var_nodearraylist3;
1951 /* <var_tidnode3:nullable Object> isa nullable TId */
1952 cltype = type_nullable_parser_nodes__TId.color;
1953 idtype = type_nullable_parser_nodes__TId.id;
1954 if(var_tidnode3 == NULL) {
1955 var8 = 1;
1956 } else {
1957 if(cltype >= var_tidnode3->type->table_size) {
1958 var8 = 0;
1959 } else {
1960 var8 = var_tidnode3->type->type_table[cltype] == idtype;
1961 }
1962 }
1963 if (!var8) {
1964 fprintf(stderr, "Runtime error: %s", "Assert failed");
1965 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25425);
1966 show_backtrace(1);
1967 }
1968 var_pexprsnode4 = var_nodearraylist4;
1969 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1970 cltype10 = type_nullable_parser_nodes__AExprs.color;
1971 idtype11 = type_nullable_parser_nodes__AExprs.id;
1972 if(var_pexprsnode4 == NULL) {
1973 var9 = 1;
1974 } else {
1975 if(cltype10 >= var_pexprsnode4->type->table_size) {
1976 var9 = 0;
1977 } else {
1978 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
1979 }
1980 }
1981 if (!var9) {
1982 fprintf(stderr, "Runtime error: %s", "Assert failed");
1983 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25427);
1984 show_backtrace(1);
1985 }
1986 var_tassignnode5 = var_nodearraylist5;
1987 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1988 cltype13 = type_nullable_parser_nodes__TAssign.color;
1989 idtype14 = type_nullable_parser_nodes__TAssign.id;
1990 if(var_tassignnode5 == NULL) {
1991 var12 = 1;
1992 } else {
1993 if(cltype13 >= var_tassignnode5->type->table_size) {
1994 var12 = 0;
1995 } else {
1996 var12 = var_tassignnode5->type->type_table[cltype13] == idtype14;
1997 }
1998 }
1999 if (!var12) {
2000 fprintf(stderr, "Runtime error: %s", "Assert failed");
2001 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25429);
2002 show_backtrace(1);
2003 }
2004 var_pexprnode6 = var_nodearraylist6;
2005 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2006 cltype16 = type_nullable_parser_nodes__AExpr.color;
2007 idtype17 = type_nullable_parser_nodes__AExpr.id;
2008 if(var_pexprnode6 == NULL) {
2009 var15 = 1;
2010 } else {
2011 if(cltype16 >= var_pexprnode6->type->table_size) {
2012 var15 = 0;
2013 } else {
2014 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
2015 }
2016 }
2017 if (!var15) {
2018 fprintf(stderr, "Runtime error: %s", "Assert failed");
2019 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25431);
2020 show_backtrace(1);
2021 }
2022 var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
2023 ((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallAssignExpr__init_acallassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_tassignnode5, var_pexprnode6) /* init_acallassignexpr on <var18:ACallAssignExpr>*/;
2024 var_pexprnode1 = var18;
2025 var_node_list = var_pexprnode1;
2026 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction668> */
2027 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
2028 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
2029 RET_LABEL:;
2030 }
2031 /* method parser#ReduceAction668#action for (self: Object, Parser) */
2032 void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) {
2033 parser__ReduceAction668__action(self, p0);
2034 RET_LABEL:;
2035 }
2036 /* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */
2037 void parser__ReduceAction670__action(val* self, val* p0) {
2038 val* var_p /* var p: Parser */;
2039 val* var /* : null */;
2040 val* var_node_list /* var node_list: nullable Object */;
2041 val* var1 /* : nullable Object */;
2042 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2043 val* var2 /* : nullable Object */;
2044 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2045 val* var3 /* : nullable Object */;
2046 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2047 val* var4 /* : nullable Object */;
2048 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2049 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2050 short int var5 /* : Bool */;
2051 int cltype;
2052 int idtype;
2053 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
2054 short int var6 /* : Bool */;
2055 int cltype7;
2056 int idtype8;
2057 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2058 short int var9 /* : Bool */;
2059 int cltype10;
2060 int idtype11;
2061 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2062 short int var12 /* : Bool */;
2063 int cltype13;
2064 int idtype14;
2065 val* var15 /* : ABraAssignExpr */;
2066 val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */;
2067 long var16 /* : Int */;
2068 long var17 /* : Int */;
2069 var_p = p0;
2070 var = NULL;
2071 var_node_list = var;
2072 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2073 var_nodearraylist4 = var1;
2074 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2075 var_nodearraylist3 = var2;
2076 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2077 var_nodearraylist2 = var3;
2078 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2079 var_nodearraylist1 = var4;
2080 var_pexprnode2 = var_nodearraylist1;
2081 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2082 cltype = type_nullable_parser_nodes__AExpr.color;
2083 idtype = type_nullable_parser_nodes__AExpr.id;
2084 if(var_pexprnode2 == NULL) {
2085 var5 = 1;
2086 } else {
2087 if(cltype >= var_pexprnode2->type->table_size) {
2088 var5 = 0;
2089 } else {
2090 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2091 }
2092 }
2093 if (!var5) {
2094 fprintf(stderr, "Runtime error: %s", "Assert failed");
2095 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25453);
2096 show_backtrace(1);
2097 }
2098 var_pexprsnode3 = var_nodearraylist2;
2099 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
2100 cltype7 = type_nullable_parser_nodes__AExprs.color;
2101 idtype8 = type_nullable_parser_nodes__AExprs.id;
2102 if(var_pexprsnode3 == NULL) {
2103 var6 = 1;
2104 } else {
2105 if(cltype7 >= var_pexprsnode3->type->table_size) {
2106 var6 = 0;
2107 } else {
2108 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
2109 }
2110 }
2111 if (!var6) {
2112 fprintf(stderr, "Runtime error: %s", "Assert failed");
2113 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25455);
2114 show_backtrace(1);
2115 }
2116 var_tassignnode4 = var_nodearraylist3;
2117 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2118 cltype10 = type_nullable_parser_nodes__TAssign.color;
2119 idtype11 = type_nullable_parser_nodes__TAssign.id;
2120 if(var_tassignnode4 == NULL) {
2121 var9 = 1;
2122 } else {
2123 if(cltype10 >= var_tassignnode4->type->table_size) {
2124 var9 = 0;
2125 } else {
2126 var9 = var_tassignnode4->type->type_table[cltype10] == idtype11;
2127 }
2128 }
2129 if (!var9) {
2130 fprintf(stderr, "Runtime error: %s", "Assert failed");
2131 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25457);
2132 show_backtrace(1);
2133 }
2134 var_pexprnode5 = var_nodearraylist4;
2135 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2136 cltype13 = type_nullable_parser_nodes__AExpr.color;
2137 idtype14 = type_nullable_parser_nodes__AExpr.id;
2138 if(var_pexprnode5 == NULL) {
2139 var12 = 1;
2140 } else {
2141 if(cltype13 >= var_pexprnode5->type->table_size) {
2142 var12 = 0;
2143 } else {
2144 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
2145 }
2146 }
2147 if (!var12) {
2148 fprintf(stderr, "Runtime error: %s", "Assert failed");
2149 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25459);
2150 show_backtrace(1);
2151 }
2152 var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr);
2153 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraAssignExpr__init_abraassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_tassignnode4, var_pexprnode5) /* init_abraassignexpr on <var15:ABraAssignExpr>*/;
2154 var_pexprnode1 = var15;
2155 var_node_list = var_pexprnode1;
2156 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction670> */
2157 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
2158 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
2159 RET_LABEL:;
2160 }
2161 /* method parser#ReduceAction670#action for (self: Object, Parser) */
2162 void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) {
2163 parser__ReduceAction670__action(self, p0);
2164 RET_LABEL:;
2165 }
2166 /* method parser#ReduceAction671#action for (self: ReduceAction671, Parser) */
2167 void parser__ReduceAction671__action(val* self, val* p0) {
2168 val* var_p /* var p: Parser */;
2169 val* var /* : null */;
2170 val* var_node_list /* var node_list: nullable Object */;
2171 val* var1 /* : nullable Object */;
2172 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2173 val* var2 /* : nullable Object */;
2174 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2175 val* var3 /* : nullable Object */;
2176 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2177 val* var4 /* : nullable Object */;
2178 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2179 val* var5 /* : nullable Object */;
2180 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2181 val* var6 /* : nullable Object */;
2182 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2183 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2184 short int var7 /* : Bool */;
2185 int cltype;
2186 int idtype;
2187 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2188 short int var8 /* : Bool */;
2189 int cltype9;
2190 int idtype10;
2191 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2192 short int var11 /* : Bool */;
2193 int cltype12;
2194 int idtype13;
2195 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2196 short int var14 /* : Bool */;
2197 int cltype15;
2198 int idtype16;
2199 val* var17 /* : AAttrReassignExpr */;
2200 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2201 long var18 /* : Int */;
2202 long var19 /* : Int */;
2203 var_p = p0;
2204 var = NULL;
2205 var_node_list = var;
2206 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2207 var_nodearraylist6 = var1;
2208 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2209 var_nodearraylist5 = var2;
2210 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2211 var_nodearraylist4 = var3;
2212 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2213 var_nodearraylist3 = var4;
2214 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2215 var_nodearraylist2 = var5;
2216 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2217 var_nodearraylist1 = var6;
2218 var_pexprnode2 = var_nodearraylist1;
2219 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2220 cltype = type_nullable_parser_nodes__AExpr.color;
2221 idtype = type_nullable_parser_nodes__AExpr.id;
2222 if(var_pexprnode2 == NULL) {
2223 var7 = 1;
2224 } else {
2225 if(cltype >= var_pexprnode2->type->table_size) {
2226 var7 = 0;
2227 } else {
2228 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
2229 }
2230 }
2231 if (!var7) {
2232 fprintf(stderr, "Runtime error: %s", "Assert failed");
2233 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25482);
2234 show_backtrace(1);
2235 }
2236 var_tattridnode3 = var_nodearraylist4;
2237 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2238 cltype9 = type_nullable_parser_nodes__TAttrid.color;
2239 idtype10 = type_nullable_parser_nodes__TAttrid.id;
2240 if(var_tattridnode3 == NULL) {
2241 var8 = 1;
2242 } else {
2243 if(cltype9 >= var_tattridnode3->type->table_size) {
2244 var8 = 0;
2245 } else {
2246 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
2247 }
2248 }
2249 if (!var8) {
2250 fprintf(stderr, "Runtime error: %s", "Assert failed");
2251 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25484);
2252 show_backtrace(1);
2253 }
2254 var_passignopnode4 = var_nodearraylist5;
2255 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2256 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
2257 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
2258 if(var_passignopnode4 == NULL) {
2259 var11 = 1;
2260 } else {
2261 if(cltype12 >= var_passignopnode4->type->table_size) {
2262 var11 = 0;
2263 } else {
2264 var11 = var_passignopnode4->type->type_table[cltype12] == idtype13;
2265 }
2266 }
2267 if (!var11) {
2268 fprintf(stderr, "Runtime error: %s", "Assert failed");
2269 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25486);
2270 show_backtrace(1);
2271 }
2272 var_pexprnode5 = var_nodearraylist6;
2273 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2274 cltype15 = type_nullable_parser_nodes__AExpr.color;
2275 idtype16 = type_nullable_parser_nodes__AExpr.id;
2276 if(var_pexprnode5 == NULL) {
2277 var14 = 1;
2278 } else {
2279 if(cltype15 >= var_pexprnode5->type->table_size) {
2280 var14 = 0;
2281 } else {
2282 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
2283 }
2284 }
2285 if (!var14) {
2286 fprintf(stderr, "Runtime error: %s", "Assert failed");
2287 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25488);
2288 show_backtrace(1);
2289 }
2290 var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2291 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var17, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var17:AAttrReassignExpr>*/;
2292 var_pexprnode1 = var17;
2293 var_node_list = var_pexprnode1;
2294 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction671> */
2295 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2296 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2297 RET_LABEL:;
2298 }
2299 /* method parser#ReduceAction671#action for (self: Object, Parser) */
2300 void VIRTUAL_parser__ReduceAction671__action(val* self, val* p0) {
2301 parser__ReduceAction671__action(self, p0);
2302 RET_LABEL:;
2303 }
2304 /* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */
2305 void parser__ReduceAction672__action(val* self, val* p0) {
2306 val* var_p /* var p: Parser */;
2307 val* var /* : null */;
2308 val* var_node_list /* var node_list: nullable Object */;
2309 val* var1 /* : nullable Object */;
2310 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2311 val* var2 /* : nullable Object */;
2312 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2313 val* var3 /* : nullable Object */;
2314 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2315 val* var4 /* : AImplicitSelfExpr */;
2316 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2317 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2318 short int var5 /* : Bool */;
2319 int cltype;
2320 int idtype;
2321 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2322 short int var6 /* : Bool */;
2323 int cltype7;
2324 int idtype8;
2325 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2326 short int var9 /* : Bool */;
2327 int cltype10;
2328 int idtype11;
2329 val* var12 /* : AAttrReassignExpr */;
2330 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2331 long var13 /* : Int */;
2332 long var14 /* : Int */;
2333 var_p = p0;
2334 var = NULL;
2335 var_node_list = var;
2336 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2337 var_nodearraylist3 = var1;
2338 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2339 var_nodearraylist2 = var2;
2340 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2341 var_nodearraylist1 = var3;
2342 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2343 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
2344 var_pexprnode2 = var4;
2345 var_tattridnode3 = var_nodearraylist1;
2346 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2347 cltype = type_nullable_parser_nodes__TAttrid.color;
2348 idtype = type_nullable_parser_nodes__TAttrid.id;
2349 if(var_tattridnode3 == NULL) {
2350 var5 = 1;
2351 } else {
2352 if(cltype >= var_tattridnode3->type->table_size) {
2353 var5 = 0;
2354 } else {
2355 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
2356 }
2357 }
2358 if (!var5) {
2359 fprintf(stderr, "Runtime error: %s", "Assert failed");
2360 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25509);
2361 show_backtrace(1);
2362 }
2363 var_passignopnode4 = var_nodearraylist2;
2364 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2365 cltype7 = type_nullable_parser_nodes__AAssignOp.color;
2366 idtype8 = type_nullable_parser_nodes__AAssignOp.id;
2367 if(var_passignopnode4 == NULL) {
2368 var6 = 1;
2369 } else {
2370 if(cltype7 >= var_passignopnode4->type->table_size) {
2371 var6 = 0;
2372 } else {
2373 var6 = var_passignopnode4->type->type_table[cltype7] == idtype8;
2374 }
2375 }
2376 if (!var6) {
2377 fprintf(stderr, "Runtime error: %s", "Assert failed");
2378 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25511);
2379 show_backtrace(1);
2380 }
2381 var_pexprnode5 = var_nodearraylist3;
2382 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2383 cltype10 = type_nullable_parser_nodes__AExpr.color;
2384 idtype11 = type_nullable_parser_nodes__AExpr.id;
2385 if(var_pexprnode5 == NULL) {
2386 var9 = 1;
2387 } else {
2388 if(cltype10 >= var_pexprnode5->type->table_size) {
2389 var9 = 0;
2390 } else {
2391 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
2392 }
2393 }
2394 if (!var9) {
2395 fprintf(stderr, "Runtime error: %s", "Assert failed");
2396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25513);
2397 show_backtrace(1);
2398 }
2399 var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2400 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var12, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var12:AAttrReassignExpr>*/;
2401 var_pexprnode1 = var12;
2402 var_node_list = var_pexprnode1;
2403 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction672> */
2404 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2405 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2406 RET_LABEL:;
2407 }
2408 /* method parser#ReduceAction672#action for (self: Object, Parser) */
2409 void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) {
2410 parser__ReduceAction672__action(self, p0);
2411 RET_LABEL:;
2412 }
2413 /* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */
2414 void parser__ReduceAction673__action(val* self, val* p0) {
2415 val* var_p /* var p: Parser */;
2416 val* var /* : null */;
2417 val* var_node_list /* var node_list: nullable Object */;
2418 val* var1 /* : nullable Object */;
2419 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2420 val* var2 /* : nullable Object */;
2421 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2422 val* var3 /* : nullable Object */;
2423 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2424 val* var4 /* : nullable Object */;
2425 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2426 val* var5 /* : nullable Object */;
2427 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2428 val* var6 /* : nullable Object */;
2429 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2430 val* var7 /* : nullable Object */;
2431 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2432 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2433 short int var8 /* : Bool */;
2434 int cltype;
2435 int idtype;
2436 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2437 short int var9 /* : Bool */;
2438 int cltype10;
2439 int idtype11;
2440 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2441 short int var12 /* : Bool */;
2442 int cltype13;
2443 int idtype14;
2444 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2445 short int var15 /* : Bool */;
2446 int cltype16;
2447 int idtype17;
2448 val* var18 /* : AAttrReassignExpr */;
2449 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2450 long var19 /* : Int */;
2451 long var20 /* : Int */;
2452 var_p = p0;
2453 var = NULL;
2454 var_node_list = var;
2455 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2456 var_nodearraylist7 = var1;
2457 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2458 var_nodearraylist6 = var2;
2459 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2460 var_nodearraylist5 = var3;
2461 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2462 var_nodearraylist4 = var4;
2463 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2464 var_nodearraylist3 = var5;
2465 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2466 var_nodearraylist2 = var6;
2467 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2468 var_nodearraylist1 = var7;
2469 var_pexprnode2 = var_nodearraylist1;
2470 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2471 cltype = type_nullable_parser_nodes__AExpr.color;
2472 idtype = type_nullable_parser_nodes__AExpr.id;
2473 if(var_pexprnode2 == NULL) {
2474 var8 = 1;
2475 } else {
2476 if(cltype >= var_pexprnode2->type->table_size) {
2477 var8 = 0;
2478 } else {
2479 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
2480 }
2481 }
2482 if (!var8) {
2483 fprintf(stderr, "Runtime error: %s", "Assert failed");
2484 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25537);
2485 show_backtrace(1);
2486 }
2487 var_tattridnode3 = var_nodearraylist5;
2488 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2489 cltype10 = type_nullable_parser_nodes__TAttrid.color;
2490 idtype11 = type_nullable_parser_nodes__TAttrid.id;
2491 if(var_tattridnode3 == NULL) {
2492 var9 = 1;
2493 } else {
2494 if(cltype10 >= var_tattridnode3->type->table_size) {
2495 var9 = 0;
2496 } else {
2497 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
2498 }
2499 }
2500 if (!var9) {
2501 fprintf(stderr, "Runtime error: %s", "Assert failed");
2502 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25539);
2503 show_backtrace(1);
2504 }
2505 var_passignopnode4 = var_nodearraylist6;
2506 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2507 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
2508 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
2509 if(var_passignopnode4 == NULL) {
2510 var12 = 1;
2511 } else {
2512 if(cltype13 >= var_passignopnode4->type->table_size) {
2513 var12 = 0;
2514 } else {
2515 var12 = var_passignopnode4->type->type_table[cltype13] == idtype14;
2516 }
2517 }
2518 if (!var12) {
2519 fprintf(stderr, "Runtime error: %s", "Assert failed");
2520 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25541);
2521 show_backtrace(1);
2522 }
2523 var_pexprnode5 = var_nodearraylist7;
2524 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2525 cltype16 = type_nullable_parser_nodes__AExpr.color;
2526 idtype17 = type_nullable_parser_nodes__AExpr.id;
2527 if(var_pexprnode5 == NULL) {
2528 var15 = 1;
2529 } else {
2530 if(cltype16 >= var_pexprnode5->type->table_size) {
2531 var15 = 0;
2532 } else {
2533 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
2534 }
2535 }
2536 if (!var15) {
2537 fprintf(stderr, "Runtime error: %s", "Assert failed");
2538 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25543);
2539 show_backtrace(1);
2540 }
2541 var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2542 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var18, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var18:AAttrReassignExpr>*/;
2543 var_pexprnode1 = var18;
2544 var_node_list = var_pexprnode1;
2545 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction673> */
2546 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
2547 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
2548 RET_LABEL:;
2549 }
2550 /* method parser#ReduceAction673#action for (self: Object, Parser) */
2551 void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) {
2552 parser__ReduceAction673__action(self, p0);
2553 RET_LABEL:;
2554 }
2555 /* method parser#ReduceAction674#action for (self: ReduceAction674, Parser) */
2556 void parser__ReduceAction674__action(val* self, val* p0) {
2557 val* var_p /* var p: Parser */;
2558 val* var /* : null */;
2559 val* var_node_list /* var node_list: nullable Object */;
2560 val* var1 /* : nullable Object */;
2561 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2562 val* var2 /* : nullable Object */;
2563 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2564 val* var3 /* : nullable Object */;
2565 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2566 val* var4 /* : nullable Object */;
2567 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2568 val* var5 /* : nullable Object */;
2569 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2570 val* var6 /* : nullable Object */;
2571 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2572 val* var7 /* : nullable Object */;
2573 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2574 val* var8 /* : nullable Object */;
2575 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2576 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2577 short int var9 /* : Bool */;
2578 int cltype;
2579 int idtype;
2580 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2581 short int var10 /* : Bool */;
2582 int cltype11;
2583 int idtype12;
2584 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2585 short int var13 /* : Bool */;
2586 int cltype14;
2587 int idtype15;
2588 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2589 short int var16 /* : Bool */;
2590 int cltype17;
2591 int idtype18;
2592 val* var19 /* : AAttrReassignExpr */;
2593 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2594 long var20 /* : Int */;
2595 long var21 /* : Int */;
2596 var_p = p0;
2597 var = NULL;
2598 var_node_list = var;
2599 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2600 var_nodearraylist8 = var1;
2601 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2602 var_nodearraylist7 = var2;
2603 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2604 var_nodearraylist6 = var3;
2605 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2606 var_nodearraylist5 = var4;
2607 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2608 var_nodearraylist4 = var5;
2609 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2610 var_nodearraylist3 = var6;
2611 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2612 var_nodearraylist2 = var7;
2613 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2614 var_nodearraylist1 = var8;
2615 var_pexprnode2 = var_nodearraylist1;
2616 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2617 cltype = type_nullable_parser_nodes__AExpr.color;
2618 idtype = type_nullable_parser_nodes__AExpr.id;
2619 if(var_pexprnode2 == NULL) {
2620 var9 = 1;
2621 } else {
2622 if(cltype >= var_pexprnode2->type->table_size) {
2623 var9 = 0;
2624 } else {
2625 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
2626 }
2627 }
2628 if (!var9) {
2629 fprintf(stderr, "Runtime error: %s", "Assert failed");
2630 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25568);
2631 show_backtrace(1);
2632 }
2633 var_tattridnode3 = var_nodearraylist6;
2634 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2635 cltype11 = type_nullable_parser_nodes__TAttrid.color;
2636 idtype12 = type_nullable_parser_nodes__TAttrid.id;
2637 if(var_tattridnode3 == NULL) {
2638 var10 = 1;
2639 } else {
2640 if(cltype11 >= var_tattridnode3->type->table_size) {
2641 var10 = 0;
2642 } else {
2643 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
2644 }
2645 }
2646 if (!var10) {
2647 fprintf(stderr, "Runtime error: %s", "Assert failed");
2648 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25570);
2649 show_backtrace(1);
2650 }
2651 var_passignopnode4 = var_nodearraylist7;
2652 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2653 cltype14 = type_nullable_parser_nodes__AAssignOp.color;
2654 idtype15 = type_nullable_parser_nodes__AAssignOp.id;
2655 if(var_passignopnode4 == NULL) {
2656 var13 = 1;
2657 } else {
2658 if(cltype14 >= var_passignopnode4->type->table_size) {
2659 var13 = 0;
2660 } else {
2661 var13 = var_passignopnode4->type->type_table[cltype14] == idtype15;
2662 }
2663 }
2664 if (!var13) {
2665 fprintf(stderr, "Runtime error: %s", "Assert failed");
2666 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25572);
2667 show_backtrace(1);
2668 }
2669 var_pexprnode5 = var_nodearraylist8;
2670 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2671 cltype17 = type_nullable_parser_nodes__AExpr.color;
2672 idtype18 = type_nullable_parser_nodes__AExpr.id;
2673 if(var_pexprnode5 == NULL) {
2674 var16 = 1;
2675 } else {
2676 if(cltype17 >= var_pexprnode5->type->table_size) {
2677 var16 = 0;
2678 } else {
2679 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
2680 }
2681 }
2682 if (!var16) {
2683 fprintf(stderr, "Runtime error: %s", "Assert failed");
2684 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25574);
2685 show_backtrace(1);
2686 }
2687 var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2688 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var19, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var19:AAttrReassignExpr>*/;
2689 var_pexprnode1 = var19;
2690 var_node_list = var_pexprnode1;
2691 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction674> */
2692 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
2693 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
2694 RET_LABEL:;
2695 }
2696 /* method parser#ReduceAction674#action for (self: Object, Parser) */
2697 void VIRTUAL_parser__ReduceAction674__action(val* self, val* p0) {
2698 parser__ReduceAction674__action(self, p0);
2699 RET_LABEL:;
2700 }
2701 /* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */
2702 void parser__ReduceAction676__action(val* self, val* p0) {
2703 val* var_p /* var p: Parser */;
2704 val* var /* : null */;
2705 val* var_node_list /* var node_list: nullable Object */;
2706 val* var1 /* : nullable Object */;
2707 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2708 val* var2 /* : nullable Object */;
2709 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2710 val* var3 /* : nullable Object */;
2711 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2712 val* var4 /* : nullable Object */;
2713 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2714 val* var5 /* : AImplicitSelfExpr */;
2715 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2716 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2717 short int var6 /* : Bool */;
2718 int cltype;
2719 int idtype;
2720 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2721 short int var7 /* : Bool */;
2722 int cltype8;
2723 int idtype9;
2724 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2725 short int var10 /* : Bool */;
2726 int cltype11;
2727 int idtype12;
2728 val* var13 /* : AAttrReassignExpr */;
2729 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2730 long var14 /* : Int */;
2731 long var15 /* : Int */;
2732 var_p = p0;
2733 var = NULL;
2734 var_node_list = var;
2735 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2736 var_nodearraylist4 = var1;
2737 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2738 var_nodearraylist3 = var2;
2739 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2740 var_nodearraylist2 = var3;
2741 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2742 var_nodearraylist1 = var4;
2743 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2744 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
2745 var_pexprnode2 = var5;
2746 var_tattridnode3 = var_nodearraylist2;
2747 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2748 cltype = type_nullable_parser_nodes__TAttrid.color;
2749 idtype = type_nullable_parser_nodes__TAttrid.id;
2750 if(var_tattridnode3 == NULL) {
2751 var6 = 1;
2752 } else {
2753 if(cltype >= var_tattridnode3->type->table_size) {
2754 var6 = 0;
2755 } else {
2756 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
2757 }
2758 }
2759 if (!var6) {
2760 fprintf(stderr, "Runtime error: %s", "Assert failed");
2761 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25596);
2762 show_backtrace(1);
2763 }
2764 var_passignopnode4 = var_nodearraylist3;
2765 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2766 cltype8 = type_nullable_parser_nodes__AAssignOp.color;
2767 idtype9 = type_nullable_parser_nodes__AAssignOp.id;
2768 if(var_passignopnode4 == NULL) {
2769 var7 = 1;
2770 } else {
2771 if(cltype8 >= var_passignopnode4->type->table_size) {
2772 var7 = 0;
2773 } else {
2774 var7 = var_passignopnode4->type->type_table[cltype8] == idtype9;
2775 }
2776 }
2777 if (!var7) {
2778 fprintf(stderr, "Runtime error: %s", "Assert failed");
2779 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25598);
2780 show_backtrace(1);
2781 }
2782 var_pexprnode5 = var_nodearraylist4;
2783 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2784 cltype11 = type_nullable_parser_nodes__AExpr.color;
2785 idtype12 = type_nullable_parser_nodes__AExpr.id;
2786 if(var_pexprnode5 == NULL) {
2787 var10 = 1;
2788 } else {
2789 if(cltype11 >= var_pexprnode5->type->table_size) {
2790 var10 = 0;
2791 } else {
2792 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
2793 }
2794 }
2795 if (!var10) {
2796 fprintf(stderr, "Runtime error: %s", "Assert failed");
2797 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25600);
2798 show_backtrace(1);
2799 }
2800 var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2801 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var13, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var13:AAttrReassignExpr>*/;
2802 var_pexprnode1 = var13;
2803 var_node_list = var_pexprnode1;
2804 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction676> */
2805 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
2806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
2807 RET_LABEL:;
2808 }
2809 /* method parser#ReduceAction676#action for (self: Object, Parser) */
2810 void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) {
2811 parser__ReduceAction676__action(self, p0);
2812 RET_LABEL:;
2813 }
2814 /* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */
2815 void parser__ReduceAction677__action(val* self, val* p0) {
2816 val* var_p /* var p: Parser */;
2817 val* var /* : null */;
2818 val* var_node_list /* var node_list: nullable Object */;
2819 val* var1 /* : nullable Object */;
2820 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2821 val* var2 /* : nullable Object */;
2822 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2823 val* var3 /* : nullable Object */;
2824 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2825 val* var4 /* : nullable Object */;
2826 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2827 val* var5 /* : nullable Object */;
2828 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2829 val* var6 /* : AImplicitSelfExpr */;
2830 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2831 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2832 short int var7 /* : Bool */;
2833 int cltype;
2834 int idtype;
2835 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2836 short int var8 /* : Bool */;
2837 int cltype9;
2838 int idtype10;
2839 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2840 short int var11 /* : Bool */;
2841 int cltype12;
2842 int idtype13;
2843 val* var14 /* : AAttrReassignExpr */;
2844 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
2845 long var15 /* : Int */;
2846 long var16 /* : Int */;
2847 var_p = p0;
2848 var = NULL;
2849 var_node_list = var;
2850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2851 var_nodearraylist5 = var1;
2852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2853 var_nodearraylist4 = var2;
2854 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2855 var_nodearraylist3 = var3;
2856 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2857 var_nodearraylist2 = var4;
2858 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2859 var_nodearraylist1 = var5;
2860 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2861 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
2862 var_pexprnode2 = var6;
2863 var_tattridnode3 = var_nodearraylist3;
2864 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2865 cltype = type_nullable_parser_nodes__TAttrid.color;
2866 idtype = type_nullable_parser_nodes__TAttrid.id;
2867 if(var_tattridnode3 == NULL) {
2868 var7 = 1;
2869 } else {
2870 if(cltype >= var_tattridnode3->type->table_size) {
2871 var7 = 0;
2872 } else {
2873 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
2874 }
2875 }
2876 if (!var7) {
2877 fprintf(stderr, "Runtime error: %s", "Assert failed");
2878 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25623);
2879 show_backtrace(1);
2880 }
2881 var_passignopnode4 = var_nodearraylist4;
2882 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2883 cltype9 = type_nullable_parser_nodes__AAssignOp.color;
2884 idtype10 = type_nullable_parser_nodes__AAssignOp.id;
2885 if(var_passignopnode4 == NULL) {
2886 var8 = 1;
2887 } else {
2888 if(cltype9 >= var_passignopnode4->type->table_size) {
2889 var8 = 0;
2890 } else {
2891 var8 = var_passignopnode4->type->type_table[cltype9] == idtype10;
2892 }
2893 }
2894 if (!var8) {
2895 fprintf(stderr, "Runtime error: %s", "Assert failed");
2896 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25625);
2897 show_backtrace(1);
2898 }
2899 var_pexprnode5 = var_nodearraylist5;
2900 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2901 cltype12 = type_nullable_parser_nodes__AExpr.color;
2902 idtype13 = type_nullable_parser_nodes__AExpr.id;
2903 if(var_pexprnode5 == NULL) {
2904 var11 = 1;
2905 } else {
2906 if(cltype12 >= var_pexprnode5->type->table_size) {
2907 var11 = 0;
2908 } else {
2909 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
2910 }
2911 }
2912 if (!var11) {
2913 fprintf(stderr, "Runtime error: %s", "Assert failed");
2914 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25627);
2915 show_backtrace(1);
2916 }
2917 var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
2918 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AAttrReassignExpr__init_aattrreassignexpr]))(var14, var_pexprnode2, var_tattridnode3, var_passignopnode4, var_pexprnode5) /* init_aattrreassignexpr on <var14:AAttrReassignExpr>*/;
2919 var_pexprnode1 = var14;
2920 var_node_list = var_pexprnode1;
2921 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction677> */
2922 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
2923 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
2924 RET_LABEL:;
2925 }
2926 /* method parser#ReduceAction677#action for (self: Object, Parser) */
2927 void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) {
2928 parser__ReduceAction677__action(self, p0);
2929 RET_LABEL:;
2930 }
2931 /* method parser#ReduceAction679#action for (self: ReduceAction679, Parser) */
2932 void parser__ReduceAction679__action(val* self, val* p0) {
2933 val* var_p /* var p: Parser */;
2934 val* var /* : null */;
2935 val* var_node_list /* var node_list: nullable Object */;
2936 val* var1 /* : nullable Object */;
2937 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2938 val* var2 /* : nullable Object */;
2939 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2940 val* var3 /* : nullable Object */;
2941 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2942 val* var4 /* : nullable Object */;
2943 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2944 val* var5 /* : nullable Object */;
2945 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2946 val* var6 /* : nullable Object */;
2947 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2948 val* var7 /* : nullable Object */;
2949 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2950 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2951 short int var8 /* : Bool */;
2952 int cltype;
2953 int idtype;
2954 val* var_tidnode3 /* var tidnode3: nullable Object */;
2955 short int var9 /* : Bool */;
2956 int cltype10;
2957 int idtype11;
2958 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
2959 short int var12 /* : Bool */;
2960 int cltype13;
2961 int idtype14;
2962 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
2963 short int var15 /* : Bool */;
2964 int cltype16;
2965 int idtype17;
2966 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
2967 short int var18 /* : Bool */;
2968 int cltype19;
2969 int idtype20;
2970 val* var21 /* : ACallReassignExpr */;
2971 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
2972 long var22 /* : Int */;
2973 long var23 /* : Int */;
2974 var_p = p0;
2975 var = NULL;
2976 var_node_list = var;
2977 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2978 var_nodearraylist7 = var1;
2979 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2980 var_nodearraylist6 = var2;
2981 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2982 var_nodearraylist5 = var3;
2983 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2984 var_nodearraylist4 = var4;
2985 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2986 var_nodearraylist3 = var5;
2987 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2988 var_nodearraylist2 = var6;
2989 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2990 var_nodearraylist1 = var7;
2991 var_pexprnode2 = var_nodearraylist1;
2992 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2993 cltype = type_nullable_parser_nodes__AExpr.color;
2994 idtype = type_nullable_parser_nodes__AExpr.id;
2995 if(var_pexprnode2 == NULL) {
2996 var8 = 1;
2997 } else {
2998 if(cltype >= var_pexprnode2->type->table_size) {
2999 var8 = 0;
3000 } else {
3001 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
3002 }
3003 }
3004 if (!var8) {
3005 fprintf(stderr, "Runtime error: %s", "Assert failed");
3006 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25651);
3007 show_backtrace(1);
3008 }
3009 var_tidnode3 = var_nodearraylist4;
3010 /* <var_tidnode3:nullable Object> isa nullable TId */
3011 cltype10 = type_nullable_parser_nodes__TId.color;
3012 idtype11 = type_nullable_parser_nodes__TId.id;
3013 if(var_tidnode3 == NULL) {
3014 var9 = 1;
3015 } else {
3016 if(cltype10 >= var_tidnode3->type->table_size) {
3017 var9 = 0;
3018 } else {
3019 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
3020 }
3021 }
3022 if (!var9) {
3023 fprintf(stderr, "Runtime error: %s", "Assert failed");
3024 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25653);
3025 show_backtrace(1);
3026 }
3027 var_pexprsnode4 = var_nodearraylist5;
3028 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3029 cltype13 = type_nullable_parser_nodes__AExprs.color;
3030 idtype14 = type_nullable_parser_nodes__AExprs.id;
3031 if(var_pexprsnode4 == NULL) {
3032 var12 = 1;
3033 } else {
3034 if(cltype13 >= var_pexprsnode4->type->table_size) {
3035 var12 = 0;
3036 } else {
3037 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
3038 }
3039 }
3040 if (!var12) {
3041 fprintf(stderr, "Runtime error: %s", "Assert failed");
3042 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25655);
3043 show_backtrace(1);
3044 }
3045 var_passignopnode5 = var_nodearraylist6;
3046 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3047 cltype16 = type_nullable_parser_nodes__AAssignOp.color;
3048 idtype17 = type_nullable_parser_nodes__AAssignOp.id;
3049 if(var_passignopnode5 == NULL) {
3050 var15 = 1;
3051 } else {
3052 if(cltype16 >= var_passignopnode5->type->table_size) {
3053 var15 = 0;
3054 } else {
3055 var15 = var_passignopnode5->type->type_table[cltype16] == idtype17;
3056 }
3057 }
3058 if (!var15) {
3059 fprintf(stderr, "Runtime error: %s", "Assert failed");
3060 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25657);
3061 show_backtrace(1);
3062 }
3063 var_pexprnode6 = var_nodearraylist7;
3064 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3065 cltype19 = type_nullable_parser_nodes__AExpr.color;
3066 idtype20 = type_nullable_parser_nodes__AExpr.id;
3067 if(var_pexprnode6 == NULL) {
3068 var18 = 1;
3069 } else {
3070 if(cltype19 >= var_pexprnode6->type->table_size) {
3071 var18 = 0;
3072 } else {
3073 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
3074 }
3075 }
3076 if (!var18) {
3077 fprintf(stderr, "Runtime error: %s", "Assert failed");
3078 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25659);
3079 show_backtrace(1);
3080 }
3081 var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3082 ((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var21:ACallReassignExpr>*/;
3083 var_pexprnode1 = var21;
3084 var_node_list = var_pexprnode1;
3085 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction679> */
3086 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
3087 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
3088 RET_LABEL:;
3089 }
3090 /* method parser#ReduceAction679#action for (self: Object, Parser) */
3091 void VIRTUAL_parser__ReduceAction679__action(val* self, val* p0) {
3092 parser__ReduceAction679__action(self, p0);
3093 RET_LABEL:;
3094 }
3095 /* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */
3096 void parser__ReduceAction680__action(val* self, val* p0) {
3097 val* var_p /* var p: Parser */;
3098 val* var /* : null */;
3099 val* var_node_list /* var node_list: nullable Object */;
3100 val* var1 /* : nullable Object */;
3101 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3102 val* var2 /* : nullable Object */;
3103 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3104 val* var3 /* : nullable Object */;
3105 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3106 val* var4 /* : nullable Object */;
3107 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3108 val* var5 /* : AImplicitSelfExpr */;
3109 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3110 val* var_tidnode3 /* var tidnode3: nullable Object */;
3111 short int var6 /* : Bool */;
3112 int cltype;
3113 int idtype;
3114 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3115 short int var7 /* : Bool */;
3116 int cltype8;
3117 int idtype9;
3118 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
3119 short int var10 /* : Bool */;
3120 int cltype11;
3121 int idtype12;
3122 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3123 short int var13 /* : Bool */;
3124 int cltype14;
3125 int idtype15;
3126 val* var16 /* : ACallReassignExpr */;
3127 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
3128 long var17 /* : Int */;
3129 long var18 /* : Int */;
3130 var_p = p0;
3131 var = NULL;
3132 var_node_list = var;
3133 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3134 var_nodearraylist4 = var1;
3135 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3136 var_nodearraylist3 = var2;
3137 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3138 var_nodearraylist2 = var3;
3139 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3140 var_nodearraylist1 = var4;
3141 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3142 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
3143 var_pexprnode2 = var5;
3144 var_tidnode3 = var_nodearraylist1;
3145 /* <var_tidnode3:nullable Object> isa nullable TId */
3146 cltype = type_nullable_parser_nodes__TId.color;
3147 idtype = type_nullable_parser_nodes__TId.id;
3148 if(var_tidnode3 == NULL) {
3149 var6 = 1;
3150 } else {
3151 if(cltype >= var_tidnode3->type->table_size) {
3152 var6 = 0;
3153 } else {
3154 var6 = var_tidnode3->type->type_table[cltype] == idtype;
3155 }
3156 }
3157 if (!var6) {
3158 fprintf(stderr, "Runtime error: %s", "Assert failed");
3159 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25682);
3160 show_backtrace(1);
3161 }
3162 var_pexprsnode4 = var_nodearraylist2;
3163 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3164 cltype8 = type_nullable_parser_nodes__AExprs.color;
3165 idtype9 = type_nullable_parser_nodes__AExprs.id;
3166 if(var_pexprsnode4 == NULL) {
3167 var7 = 1;
3168 } else {
3169 if(cltype8 >= var_pexprsnode4->type->table_size) {
3170 var7 = 0;
3171 } else {
3172 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
3173 }
3174 }
3175 if (!var7) {
3176 fprintf(stderr, "Runtime error: %s", "Assert failed");
3177 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25684);
3178 show_backtrace(1);
3179 }
3180 var_passignopnode5 = var_nodearraylist3;
3181 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3182 cltype11 = type_nullable_parser_nodes__AAssignOp.color;
3183 idtype12 = type_nullable_parser_nodes__AAssignOp.id;
3184 if(var_passignopnode5 == NULL) {
3185 var10 = 1;
3186 } else {
3187 if(cltype11 >= var_passignopnode5->type->table_size) {
3188 var10 = 0;
3189 } else {
3190 var10 = var_passignopnode5->type->type_table[cltype11] == idtype12;
3191 }
3192 }
3193 if (!var10) {
3194 fprintf(stderr, "Runtime error: %s", "Assert failed");
3195 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25686);
3196 show_backtrace(1);
3197 }
3198 var_pexprnode6 = var_nodearraylist4;
3199 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3200 cltype14 = type_nullable_parser_nodes__AExpr.color;
3201 idtype15 = type_nullable_parser_nodes__AExpr.id;
3202 if(var_pexprnode6 == NULL) {
3203 var13 = 1;
3204 } else {
3205 if(cltype14 >= var_pexprnode6->type->table_size) {
3206 var13 = 0;
3207 } else {
3208 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
3209 }
3210 }
3211 if (!var13) {
3212 fprintf(stderr, "Runtime error: %s", "Assert failed");
3213 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25688);
3214 show_backtrace(1);
3215 }
3216 var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3217 ((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var16:ACallReassignExpr>*/;
3218 var_pexprnode1 = var16;
3219 var_node_list = var_pexprnode1;
3220 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction680> */
3221 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
3222 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
3223 RET_LABEL:;
3224 }
3225 /* method parser#ReduceAction680#action for (self: Object, Parser) */
3226 void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) {
3227 parser__ReduceAction680__action(self, p0);
3228 RET_LABEL:;
3229 }
3230 /* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */
3231 void parser__ReduceAction681__action(val* self, val* p0) {
3232 val* var_p /* var p: Parser */;
3233 val* var /* : null */;
3234 val* var_node_list /* var node_list: nullable Object */;
3235 val* var1 /* : nullable Object */;
3236 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3237 val* var2 /* : nullable Object */;
3238 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3239 val* var3 /* : nullable Object */;
3240 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3241 val* var4 /* : nullable Object */;
3242 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3243 val* var5 /* : nullable Object */;
3244 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3245 val* var6 /* : nullable Object */;
3246 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3247 val* var7 /* : nullable Object */;
3248 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3249 val* var8 /* : nullable Object */;
3250 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3251 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3252 short int var9 /* : Bool */;
3253 int cltype;
3254 int idtype;
3255 val* var_tidnode3 /* var tidnode3: nullable Object */;
3256 short int var10 /* : Bool */;
3257 int cltype11;
3258 int idtype12;
3259 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3260 short int var13 /* : Bool */;
3261 int cltype14;
3262 int idtype15;
3263 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
3264 short int var16 /* : Bool */;
3265 int cltype17;
3266 int idtype18;
3267 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3268 short int var19 /* : Bool */;
3269 int cltype20;
3270 int idtype21;
3271 val* var22 /* : ACallReassignExpr */;
3272 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
3273 long var23 /* : Int */;
3274 long var24 /* : Int */;
3275 var_p = p0;
3276 var = NULL;
3277 var_node_list = var;
3278 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3279 var_nodearraylist8 = var1;
3280 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3281 var_nodearraylist7 = var2;
3282 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3283 var_nodearraylist6 = var3;
3284 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3285 var_nodearraylist5 = var4;
3286 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3287 var_nodearraylist4 = var5;
3288 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3289 var_nodearraylist3 = var6;
3290 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3291 var_nodearraylist2 = var7;
3292 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3293 var_nodearraylist1 = var8;
3294 var_pexprnode2 = var_nodearraylist1;
3295 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3296 cltype = type_nullable_parser_nodes__AExpr.color;
3297 idtype = type_nullable_parser_nodes__AExpr.id;
3298 if(var_pexprnode2 == NULL) {
3299 var9 = 1;
3300 } else {
3301 if(cltype >= var_pexprnode2->type->table_size) {
3302 var9 = 0;
3303 } else {
3304 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
3305 }
3306 }
3307 if (!var9) {
3308 fprintf(stderr, "Runtime error: %s", "Assert failed");
3309 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25714);
3310 show_backtrace(1);
3311 }
3312 var_tidnode3 = var_nodearraylist5;
3313 /* <var_tidnode3:nullable Object> isa nullable TId */
3314 cltype11 = type_nullable_parser_nodes__TId.color;
3315 idtype12 = type_nullable_parser_nodes__TId.id;
3316 if(var_tidnode3 == NULL) {
3317 var10 = 1;
3318 } else {
3319 if(cltype11 >= var_tidnode3->type->table_size) {
3320 var10 = 0;
3321 } else {
3322 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
3323 }
3324 }
3325 if (!var10) {
3326 fprintf(stderr, "Runtime error: %s", "Assert failed");
3327 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25716);
3328 show_backtrace(1);
3329 }
3330 var_pexprsnode4 = var_nodearraylist6;
3331 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3332 cltype14 = type_nullable_parser_nodes__AExprs.color;
3333 idtype15 = type_nullable_parser_nodes__AExprs.id;
3334 if(var_pexprsnode4 == NULL) {
3335 var13 = 1;
3336 } else {
3337 if(cltype14 >= var_pexprsnode4->type->table_size) {
3338 var13 = 0;
3339 } else {
3340 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
3341 }
3342 }
3343 if (!var13) {
3344 fprintf(stderr, "Runtime error: %s", "Assert failed");
3345 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25718);
3346 show_backtrace(1);
3347 }
3348 var_passignopnode5 = var_nodearraylist7;
3349 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3350 cltype17 = type_nullable_parser_nodes__AAssignOp.color;
3351 idtype18 = type_nullable_parser_nodes__AAssignOp.id;
3352 if(var_passignopnode5 == NULL) {
3353 var16 = 1;
3354 } else {
3355 if(cltype17 >= var_passignopnode5->type->table_size) {
3356 var16 = 0;
3357 } else {
3358 var16 = var_passignopnode5->type->type_table[cltype17] == idtype18;
3359 }
3360 }
3361 if (!var16) {
3362 fprintf(stderr, "Runtime error: %s", "Assert failed");
3363 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25720);
3364 show_backtrace(1);
3365 }
3366 var_pexprnode6 = var_nodearraylist8;
3367 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3368 cltype20 = type_nullable_parser_nodes__AExpr.color;
3369 idtype21 = type_nullable_parser_nodes__AExpr.id;
3370 if(var_pexprnode6 == NULL) {
3371 var19 = 1;
3372 } else {
3373 if(cltype20 >= var_pexprnode6->type->table_size) {
3374 var19 = 0;
3375 } else {
3376 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
3377 }
3378 }
3379 if (!var19) {
3380 fprintf(stderr, "Runtime error: %s", "Assert failed");
3381 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25722);
3382 show_backtrace(1);
3383 }
3384 var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3385 ((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var22, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var22:ACallReassignExpr>*/;
3386 var_pexprnode1 = var22;
3387 var_node_list = var_pexprnode1;
3388 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction681> */
3389 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3390 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3391 RET_LABEL:;
3392 }
3393 /* method parser#ReduceAction681#action for (self: Object, Parser) */
3394 void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) {
3395 parser__ReduceAction681__action(self, p0);
3396 RET_LABEL:;
3397 }
3398 /* method parser#ReduceAction682#action for (self: ReduceAction682, Parser) */
3399 void parser__ReduceAction682__action(val* self, val* p0) {
3400 val* var_p /* var p: Parser */;
3401 val* var /* : null */;
3402 val* var_node_list /* var node_list: nullable Object */;
3403 val* var1 /* : nullable Object */;
3404 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3405 val* var2 /* : nullable Object */;
3406 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3407 val* var3 /* : nullable Object */;
3408 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3409 val* var4 /* : nullable Object */;
3410 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3411 val* var5 /* : nullable Object */;
3412 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3413 val* var6 /* : nullable Object */;
3414 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3415 val* var7 /* : nullable Object */;
3416 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3417 val* var8 /* : nullable Object */;
3418 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3419 val* var9 /* : nullable Object */;
3420 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3421 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3422 short int var10 /* : Bool */;
3423 int cltype;
3424 int idtype;
3425 val* var_tidnode3 /* var tidnode3: nullable Object */;
3426 short int var11 /* : Bool */;
3427 int cltype12;
3428 int idtype13;
3429 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3430 short int var14 /* : Bool */;
3431 int cltype15;
3432 int idtype16;
3433 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
3434 short int var17 /* : Bool */;
3435 int cltype18;
3436 int idtype19;
3437 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3438 short int var20 /* : Bool */;
3439 int cltype21;
3440 int idtype22;
3441 val* var23 /* : ACallReassignExpr */;
3442 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
3443 long var24 /* : Int */;
3444 long var25 /* : Int */;
3445 var_p = p0;
3446 var = NULL;
3447 var_node_list = var;
3448 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3449 var_nodearraylist9 = var1;
3450 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3451 var_nodearraylist8 = var2;
3452 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3453 var_nodearraylist7 = var3;
3454 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3455 var_nodearraylist6 = var4;
3456 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3457 var_nodearraylist5 = var5;
3458 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3459 var_nodearraylist4 = var6;
3460 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3461 var_nodearraylist3 = var7;
3462 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3463 var_nodearraylist2 = var8;
3464 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3465 var_nodearraylist1 = var9;
3466 var_pexprnode2 = var_nodearraylist1;
3467 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3468 cltype = type_nullable_parser_nodes__AExpr.color;
3469 idtype = type_nullable_parser_nodes__AExpr.id;
3470 if(var_pexprnode2 == NULL) {
3471 var10 = 1;
3472 } else {
3473 if(cltype >= var_pexprnode2->type->table_size) {
3474 var10 = 0;
3475 } else {
3476 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
3477 }
3478 }
3479 if (!var10) {
3480 fprintf(stderr, "Runtime error: %s", "Assert failed");
3481 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25749);
3482 show_backtrace(1);
3483 }
3484 var_tidnode3 = var_nodearraylist6;
3485 /* <var_tidnode3:nullable Object> isa nullable TId */
3486 cltype12 = type_nullable_parser_nodes__TId.color;
3487 idtype13 = type_nullable_parser_nodes__TId.id;
3488 if(var_tidnode3 == NULL) {
3489 var11 = 1;
3490 } else {
3491 if(cltype12 >= var_tidnode3->type->table_size) {
3492 var11 = 0;
3493 } else {
3494 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
3495 }
3496 }
3497 if (!var11) {
3498 fprintf(stderr, "Runtime error: %s", "Assert failed");
3499 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25751);
3500 show_backtrace(1);
3501 }
3502 var_pexprsnode4 = var_nodearraylist7;
3503 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3504 cltype15 = type_nullable_parser_nodes__AExprs.color;
3505 idtype16 = type_nullable_parser_nodes__AExprs.id;
3506 if(var_pexprsnode4 == NULL) {
3507 var14 = 1;
3508 } else {
3509 if(cltype15 >= var_pexprsnode4->type->table_size) {
3510 var14 = 0;
3511 } else {
3512 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
3513 }
3514 }
3515 if (!var14) {
3516 fprintf(stderr, "Runtime error: %s", "Assert failed");
3517 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25753);
3518 show_backtrace(1);
3519 }
3520 var_passignopnode5 = var_nodearraylist8;
3521 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3522 cltype18 = type_nullable_parser_nodes__AAssignOp.color;
3523 idtype19 = type_nullable_parser_nodes__AAssignOp.id;
3524 if(var_passignopnode5 == NULL) {
3525 var17 = 1;
3526 } else {
3527 if(cltype18 >= var_passignopnode5->type->table_size) {
3528 var17 = 0;
3529 } else {
3530 var17 = var_passignopnode5->type->type_table[cltype18] == idtype19;
3531 }
3532 }
3533 if (!var17) {
3534 fprintf(stderr, "Runtime error: %s", "Assert failed");
3535 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25755);
3536 show_backtrace(1);
3537 }
3538 var_pexprnode6 = var_nodearraylist9;
3539 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3540 cltype21 = type_nullable_parser_nodes__AExpr.color;
3541 idtype22 = type_nullable_parser_nodes__AExpr.id;
3542 if(var_pexprnode6 == NULL) {
3543 var20 = 1;
3544 } else {
3545 if(cltype21 >= var_pexprnode6->type->table_size) {
3546 var20 = 0;
3547 } else {
3548 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
3549 }
3550 }
3551 if (!var20) {
3552 fprintf(stderr, "Runtime error: %s", "Assert failed");
3553 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25757);
3554 show_backtrace(1);
3555 }
3556 var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3557 ((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var23, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var23:ACallReassignExpr>*/;
3558 var_pexprnode1 = var23;
3559 var_node_list = var_pexprnode1;
3560 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction682> */
3561 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
3562 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
3563 RET_LABEL:;
3564 }
3565 /* method parser#ReduceAction682#action for (self: Object, Parser) */
3566 void VIRTUAL_parser__ReduceAction682__action(val* self, val* p0) {
3567 parser__ReduceAction682__action(self, p0);
3568 RET_LABEL:;
3569 }
3570 /* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */
3571 void parser__ReduceAction684__action(val* self, val* p0) {
3572 val* var_p /* var p: Parser */;
3573 val* var /* : null */;
3574 val* var_node_list /* var node_list: nullable Object */;
3575 val* var1 /* : nullable Object */;
3576 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3577 val* var2 /* : nullable Object */;
3578 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3579 val* var3 /* : nullable Object */;
3580 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3581 val* var4 /* : nullable Object */;
3582 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3583 val* var5 /* : nullable Object */;
3584 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3585 val* var6 /* : AImplicitSelfExpr */;
3586 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3587 val* var_tidnode3 /* var tidnode3: nullable Object */;
3588 short int var7 /* : Bool */;
3589 int cltype;
3590 int idtype;
3591 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3592 short int var8 /* : Bool */;
3593 int cltype9;
3594 int idtype10;
3595 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
3596 short int var11 /* : Bool */;
3597 int cltype12;
3598 int idtype13;
3599 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3600 short int var14 /* : Bool */;
3601 int cltype15;
3602 int idtype16;
3603 val* var17 /* : ACallReassignExpr */;
3604 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
3605 long var18 /* : Int */;
3606 long var19 /* : Int */;
3607 var_p = p0;
3608 var = NULL;
3609 var_node_list = var;
3610 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3611 var_nodearraylist5 = var1;
3612 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3613 var_nodearraylist4 = var2;
3614 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3615 var_nodearraylist3 = var3;
3616 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3617 var_nodearraylist2 = var4;
3618 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3619 var_nodearraylist1 = var5;
3620 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3621 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
3622 var_pexprnode2 = var6;
3623 var_tidnode3 = var_nodearraylist2;
3624 /* <var_tidnode3:nullable Object> isa nullable TId */
3625 cltype = type_nullable_parser_nodes__TId.color;
3626 idtype = type_nullable_parser_nodes__TId.id;
3627 if(var_tidnode3 == NULL) {
3628 var7 = 1;
3629 } else {
3630 if(cltype >= var_tidnode3->type->table_size) {
3631 var7 = 0;
3632 } else {
3633 var7 = var_tidnode3->type->type_table[cltype] == idtype;
3634 }
3635 }
3636 if (!var7) {
3637 fprintf(stderr, "Runtime error: %s", "Assert failed");
3638 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25781);
3639 show_backtrace(1);
3640 }
3641 var_pexprsnode4 = var_nodearraylist3;
3642 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3643 cltype9 = type_nullable_parser_nodes__AExprs.color;
3644 idtype10 = type_nullable_parser_nodes__AExprs.id;
3645 if(var_pexprsnode4 == NULL) {
3646 var8 = 1;
3647 } else {
3648 if(cltype9 >= var_pexprsnode4->type->table_size) {
3649 var8 = 0;
3650 } else {
3651 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
3652 }
3653 }
3654 if (!var8) {
3655 fprintf(stderr, "Runtime error: %s", "Assert failed");
3656 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25783);
3657 show_backtrace(1);
3658 }
3659 var_passignopnode5 = var_nodearraylist4;
3660 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3661 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
3662 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
3663 if(var_passignopnode5 == NULL) {
3664 var11 = 1;
3665 } else {
3666 if(cltype12 >= var_passignopnode5->type->table_size) {
3667 var11 = 0;
3668 } else {
3669 var11 = var_passignopnode5->type->type_table[cltype12] == idtype13;
3670 }
3671 }
3672 if (!var11) {
3673 fprintf(stderr, "Runtime error: %s", "Assert failed");
3674 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25785);
3675 show_backtrace(1);
3676 }
3677 var_pexprnode6 = var_nodearraylist5;
3678 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3679 cltype15 = type_nullable_parser_nodes__AExpr.color;
3680 idtype16 = type_nullable_parser_nodes__AExpr.id;
3681 if(var_pexprnode6 == NULL) {
3682 var14 = 1;
3683 } else {
3684 if(cltype15 >= var_pexprnode6->type->table_size) {
3685 var14 = 0;
3686 } else {
3687 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
3688 }
3689 }
3690 if (!var14) {
3691 fprintf(stderr, "Runtime error: %s", "Assert failed");
3692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25787);
3693 show_backtrace(1);
3694 }
3695 var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3696 ((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var17, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var17:ACallReassignExpr>*/;
3697 var_pexprnode1 = var17;
3698 var_node_list = var_pexprnode1;
3699 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction684> */
3700 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3701 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3702 RET_LABEL:;
3703 }
3704 /* method parser#ReduceAction684#action for (self: Object, Parser) */
3705 void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) {
3706 parser__ReduceAction684__action(self, p0);
3707 RET_LABEL:;
3708 }
3709 /* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */
3710 void parser__ReduceAction685__action(val* self, val* p0) {
3711 val* var_p /* var p: Parser */;
3712 val* var /* : null */;
3713 val* var_node_list /* var node_list: nullable Object */;
3714 val* var1 /* : nullable Object */;
3715 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3716 val* var2 /* : nullable Object */;
3717 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3718 val* var3 /* : nullable Object */;
3719 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3720 val* var4 /* : nullable Object */;
3721 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3722 val* var5 /* : nullable Object */;
3723 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3724 val* var6 /* : nullable Object */;
3725 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3726 val* var7 /* : AImplicitSelfExpr */;
3727 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3728 val* var_tidnode3 /* var tidnode3: nullable Object */;
3729 short int var8 /* : Bool */;
3730 int cltype;
3731 int idtype;
3732 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3733 short int var9 /* : Bool */;
3734 int cltype10;
3735 int idtype11;
3736 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
3737 short int var12 /* : Bool */;
3738 int cltype13;
3739 int idtype14;
3740 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3741 short int var15 /* : Bool */;
3742 int cltype16;
3743 int idtype17;
3744 val* var18 /* : ACallReassignExpr */;
3745 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
3746 long var19 /* : Int */;
3747 long var20 /* : Int */;
3748 var_p = p0;
3749 var = NULL;
3750 var_node_list = var;
3751 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3752 var_nodearraylist6 = var1;
3753 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3754 var_nodearraylist5 = var2;
3755 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3756 var_nodearraylist4 = var3;
3757 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3758 var_nodearraylist3 = var4;
3759 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3760 var_nodearraylist2 = var5;
3761 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3762 var_nodearraylist1 = var6;
3763 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3764 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
3765 var_pexprnode2 = var7;
3766 var_tidnode3 = var_nodearraylist3;
3767 /* <var_tidnode3:nullable Object> isa nullable TId */
3768 cltype = type_nullable_parser_nodes__TId.color;
3769 idtype = type_nullable_parser_nodes__TId.id;
3770 if(var_tidnode3 == NULL) {
3771 var8 = 1;
3772 } else {
3773 if(cltype >= var_tidnode3->type->table_size) {
3774 var8 = 0;
3775 } else {
3776 var8 = var_tidnode3->type->type_table[cltype] == idtype;
3777 }
3778 }
3779 if (!var8) {
3780 fprintf(stderr, "Runtime error: %s", "Assert failed");
3781 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25812);
3782 show_backtrace(1);
3783 }
3784 var_pexprsnode4 = var_nodearraylist4;
3785 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3786 cltype10 = type_nullable_parser_nodes__AExprs.color;
3787 idtype11 = type_nullable_parser_nodes__AExprs.id;
3788 if(var_pexprsnode4 == NULL) {
3789 var9 = 1;
3790 } else {
3791 if(cltype10 >= var_pexprsnode4->type->table_size) {
3792 var9 = 0;
3793 } else {
3794 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
3795 }
3796 }
3797 if (!var9) {
3798 fprintf(stderr, "Runtime error: %s", "Assert failed");
3799 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25814);
3800 show_backtrace(1);
3801 }
3802 var_passignopnode5 = var_nodearraylist5;
3803 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
3804 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
3805 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
3806 if(var_passignopnode5 == NULL) {
3807 var12 = 1;
3808 } else {
3809 if(cltype13 >= var_passignopnode5->type->table_size) {
3810 var12 = 0;
3811 } else {
3812 var12 = var_passignopnode5->type->type_table[cltype13] == idtype14;
3813 }
3814 }
3815 if (!var12) {
3816 fprintf(stderr, "Runtime error: %s", "Assert failed");
3817 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25816);
3818 show_backtrace(1);
3819 }
3820 var_pexprnode6 = var_nodearraylist6;
3821 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3822 cltype16 = type_nullable_parser_nodes__AExpr.color;
3823 idtype17 = type_nullable_parser_nodes__AExpr.id;
3824 if(var_pexprnode6 == NULL) {
3825 var15 = 1;
3826 } else {
3827 if(cltype16 >= var_pexprnode6->type->table_size) {
3828 var15 = 0;
3829 } else {
3830 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
3831 }
3832 }
3833 if (!var15) {
3834 fprintf(stderr, "Runtime error: %s", "Assert failed");
3835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25818);
3836 show_backtrace(1);
3837 }
3838 var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
3839 ((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ACallReassignExpr__init_acallreassignexpr]))(var18, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_passignopnode5, var_pexprnode6) /* init_acallreassignexpr on <var18:ACallReassignExpr>*/;
3840 var_pexprnode1 = var18;
3841 var_node_list = var_pexprnode1;
3842 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction685> */
3843 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
3844 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
3845 RET_LABEL:;
3846 }
3847 /* method parser#ReduceAction685#action for (self: Object, Parser) */
3848 void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) {
3849 parser__ReduceAction685__action(self, p0);
3850 RET_LABEL:;
3851 }
3852 /* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */
3853 void parser__ReduceAction687__action(val* self, val* p0) {
3854 val* var_p /* var p: Parser */;
3855 val* var /* : null */;
3856 val* var_node_list /* var node_list: nullable Object */;
3857 val* var1 /* : nullable Object */;
3858 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3859 val* var2 /* : nullable Object */;
3860 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3861 val* var3 /* : nullable Object */;
3862 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3863 val* var4 /* : nullable Object */;
3864 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3865 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3866 short int var5 /* : Bool */;
3867 int cltype;
3868 int idtype;
3869 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
3870 short int var6 /* : Bool */;
3871 int cltype7;
3872 int idtype8;
3873 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
3874 short int var9 /* : Bool */;
3875 int cltype10;
3876 int idtype11;
3877 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3878 short int var12 /* : Bool */;
3879 int cltype13;
3880 int idtype14;
3881 val* var15 /* : ABraReassignExpr */;
3882 val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */;
3883 long var16 /* : Int */;
3884 long var17 /* : Int */;
3885 var_p = p0;
3886 var = NULL;
3887 var_node_list = var;
3888 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3889 var_nodearraylist4 = var1;
3890 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3891 var_nodearraylist3 = var2;
3892 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3893 var_nodearraylist2 = var3;
3894 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3895 var_nodearraylist1 = var4;
3896 var_pexprnode2 = var_nodearraylist1;
3897 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3898 cltype = type_nullable_parser_nodes__AExpr.color;
3899 idtype = type_nullable_parser_nodes__AExpr.id;
3900 if(var_pexprnode2 == NULL) {
3901 var5 = 1;
3902 } else {
3903 if(cltype >= var_pexprnode2->type->table_size) {
3904 var5 = 0;
3905 } else {
3906 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3907 }
3908 }
3909 if (!var5) {
3910 fprintf(stderr, "Runtime error: %s", "Assert failed");
3911 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25840);
3912 show_backtrace(1);
3913 }
3914 var_pexprsnode3 = var_nodearraylist2;
3915 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
3916 cltype7 = type_nullable_parser_nodes__AExprs.color;
3917 idtype8 = type_nullable_parser_nodes__AExprs.id;
3918 if(var_pexprsnode3 == NULL) {
3919 var6 = 1;
3920 } else {
3921 if(cltype7 >= var_pexprsnode3->type->table_size) {
3922 var6 = 0;
3923 } else {
3924 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
3925 }
3926 }
3927 if (!var6) {
3928 fprintf(stderr, "Runtime error: %s", "Assert failed");
3929 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25842);
3930 show_backtrace(1);
3931 }
3932 var_passignopnode4 = var_nodearraylist3;
3933 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
3934 cltype10 = type_nullable_parser_nodes__AAssignOp.color;
3935 idtype11 = type_nullable_parser_nodes__AAssignOp.id;
3936 if(var_passignopnode4 == NULL) {
3937 var9 = 1;
3938 } else {
3939 if(cltype10 >= var_passignopnode4->type->table_size) {
3940 var9 = 0;
3941 } else {
3942 var9 = var_passignopnode4->type->type_table[cltype10] == idtype11;
3943 }
3944 }
3945 if (!var9) {
3946 fprintf(stderr, "Runtime error: %s", "Assert failed");
3947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25844);
3948 show_backtrace(1);
3949 }
3950 var_pexprnode5 = var_nodearraylist4;
3951 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
3952 cltype13 = type_nullable_parser_nodes__AExpr.color;
3953 idtype14 = type_nullable_parser_nodes__AExpr.id;
3954 if(var_pexprnode5 == NULL) {
3955 var12 = 1;
3956 } else {
3957 if(cltype13 >= var_pexprnode5->type->table_size) {
3958 var12 = 0;
3959 } else {
3960 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
3961 }
3962 }
3963 if (!var12) {
3964 fprintf(stderr, "Runtime error: %s", "Assert failed");
3965 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25846);
3966 show_backtrace(1);
3967 }
3968 var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr);
3969 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ABraReassignExpr__init_abrareassignexpr]))(var15, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5) /* init_abrareassignexpr on <var15:ABraReassignExpr>*/;
3970 var_pexprnode1 = var15;
3971 var_node_list = var_pexprnode1;
3972 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction687> */
3973 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
3974 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
3975 RET_LABEL:;
3976 }
3977 /* method parser#ReduceAction687#action for (self: Object, Parser) */
3978 void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) {
3979 parser__ReduceAction687__action(self, p0);
3980 RET_LABEL:;
3981 }
3982 /* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */
3983 void parser__ReduceAction688__action(val* self, val* p0) {
3984 val* var_p /* var p: Parser */;
3985 val* var /* : null */;
3986 val* var_node_list /* var node_list: nullable Object */;
3987 val* var1 /* : nullable Object */;
3988 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3989 val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */;
3990 short int var2 /* : Bool */;
3991 int cltype;
3992 int idtype;
3993 val* var3 /* : APlusAssignOp */;
3994 val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */;
3995 long var4 /* : Int */;
3996 long var5 /* : Int */;
3997 var_p = p0;
3998 var = NULL;
3999 var_node_list = var;
4000 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4001 var_nodearraylist1 = var1;
4002 var_tpluseqnode2 = var_nodearraylist1;
4003 /* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
4004 cltype = type_nullable_parser_nodes__TPluseq.color;
4005 idtype = type_nullable_parser_nodes__TPluseq.id;
4006 if(var_tpluseqnode2 == NULL) {
4007 var2 = 1;
4008 } else {
4009 if(cltype >= var_tpluseqnode2->type->table_size) {
4010 var2 = 0;
4011 } else {
4012 var2 = var_tpluseqnode2->type->type_table[cltype] == idtype;
4013 }
4014 }
4015 if (!var2) {
4016 fprintf(stderr, "Runtime error: %s", "Assert failed");
4017 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25864);
4018 show_backtrace(1);
4019 }
4020 var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp);
4021 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on <var3:APlusAssignOp>*/;
4022 var_passignopnode1 = var3;
4023 var_node_list = var_passignopnode1;
4024 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction688> */
4025 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
4026 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
4027 RET_LABEL:;
4028 }
4029 /* method parser#ReduceAction688#action for (self: Object, Parser) */
4030 void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) {
4031 parser__ReduceAction688__action(self, p0);
4032 RET_LABEL:;
4033 }
4034 /* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */
4035 void parser__ReduceAction689__action(val* self, val* p0) {
4036 val* var_p /* var p: Parser */;
4037 val* var /* : null */;
4038 val* var_node_list /* var node_list: nullable Object */;
4039 val* var1 /* : nullable Object */;
4040 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4041 val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */;
4042 short int var2 /* : Bool */;
4043 int cltype;
4044 int idtype;
4045 val* var3 /* : AMinusAssignOp */;
4046 val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */;
4047 long var4 /* : Int */;
4048 long var5 /* : Int */;
4049 var_p = p0;
4050 var = NULL;
4051 var_node_list = var;
4052 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4053 var_nodearraylist1 = var1;
4054 var_tminuseqnode2 = var_nodearraylist1;
4055 /* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
4056 cltype = type_nullable_parser_nodes__TMinuseq.color;
4057 idtype = type_nullable_parser_nodes__TMinuseq.id;
4058 if(var_tminuseqnode2 == NULL) {
4059 var2 = 1;
4060 } else {
4061 if(cltype >= var_tminuseqnode2->type->table_size) {
4062 var2 = 0;
4063 } else {
4064 var2 = var_tminuseqnode2->type->type_table[cltype] == idtype;
4065 }
4066 }
4067 if (!var2) {
4068 fprintf(stderr, "Runtime error: %s", "Assert failed");
4069 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25879);
4070 show_backtrace(1);
4071 }
4072 var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp);
4073 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on <var3:AMinusAssignOp>*/;
4074 var_passignopnode1 = var3;
4075 var_node_list = var_passignopnode1;
4076 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction689> */
4077 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
4078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
4079 RET_LABEL:;
4080 }
4081 /* method parser#ReduceAction689#action for (self: Object, Parser) */
4082 void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) {
4083 parser__ReduceAction689__action(self, p0);
4084 RET_LABEL:;
4085 }
4086 /* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */
4087 void parser__ReduceAction690__action(val* self, val* p0) {
4088 val* var_p /* var p: Parser */;
4089 val* var /* : null */;
4090 val* var_node_list /* var node_list: nullable Object */;
4091 val* var1 /* : nullable Object */;
4092 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4093 val* var2 /* : nullable Object */;
4094 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4095 val* var3 /* : nullable Object */;
4096 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4097 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
4098 short int var4 /* : Bool */;
4099 int cltype;
4100 int idtype;
4101 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4102 short int var5 /* : Bool */;
4103 int cltype6;
4104 int idtype7;
4105 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
4106 short int var8 /* : Bool */;
4107 int cltype9;
4108 int idtype10;
4109 val* var11 /* : ADoExpr */;
4110 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
4111 long var12 /* : Int */;
4112 long var13 /* : Int */;
4113 var_p = p0;
4114 var = NULL;
4115 var_node_list = var;
4116 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4117 var_nodearraylist3 = var1;
4118 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4119 var_nodearraylist2 = var2;
4120 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4121 var_nodearraylist1 = var3;
4122 var_tkwdonode2 = var_nodearraylist1;
4123 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
4124 cltype = type_nullable_parser_nodes__TKwdo.color;
4125 idtype = type_nullable_parser_nodes__TKwdo.id;
4126 if(var_tkwdonode2 == NULL) {
4127 var4 = 1;
4128 } else {
4129 if(cltype >= var_tkwdonode2->type->table_size) {
4130 var4 = 0;
4131 } else {
4132 var4 = var_tkwdonode2->type->type_table[cltype] == idtype;
4133 }
4134 }
4135 if (!var4) {
4136 fprintf(stderr, "Runtime error: %s", "Assert failed");
4137 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25896);
4138 show_backtrace(1);
4139 }
4140 var_pexprnode3 = var_nodearraylist2;
4141 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4142 cltype6 = type_nullable_parser_nodes__AExpr.color;
4143 idtype7 = type_nullable_parser_nodes__AExpr.id;
4144 if(var_pexprnode3 == NULL) {
4145 var5 = 1;
4146 } else {
4147 if(cltype6 >= var_pexprnode3->type->table_size) {
4148 var5 = 0;
4149 } else {
4150 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
4151 }
4152 }
4153 if (!var5) {
4154 fprintf(stderr, "Runtime error: %s", "Assert failed");
4155 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25898);
4156 show_backtrace(1);
4157 }
4158 var_plabelnode4 = var_nodearraylist3;
4159 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
4160 cltype9 = type_nullable_parser_nodes__ALabel.color;
4161 idtype10 = type_nullable_parser_nodes__ALabel.id;
4162 if(var_plabelnode4 == NULL) {
4163 var8 = 1;
4164 } else {
4165 if(cltype9 >= var_plabelnode4->type->table_size) {
4166 var8 = 0;
4167 } else {
4168 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
4169 }
4170 }
4171 if (!var8) {
4172 fprintf(stderr, "Runtime error: %s", "Assert failed");
4173 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25900);
4174 show_backtrace(1);
4175 }
4176 var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
4177 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var11, var_tkwdonode2, var_pexprnode3, var_plabelnode4) /* init_adoexpr on <var11:ADoExpr>*/;
4178 var_pexprnode1 = var11;
4179 var_node_list = var_pexprnode1;
4180 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction690> */
4181 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4183 RET_LABEL:;
4184 }
4185 /* method parser#ReduceAction690#action for (self: Object, Parser) */
4186 void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) {
4187 parser__ReduceAction690__action(self, p0);
4188 RET_LABEL:;
4189 }
4190 /* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */
4191 void parser__ReduceAction691__action(val* self, val* p0) {
4192 val* var_p /* var p: Parser */;
4193 val* var /* : null */;
4194 val* var_node_list /* var node_list: nullable Object */;
4195 val* var1 /* : nullable Object */;
4196 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4197 val* var2 /* : nullable Object */;
4198 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4199 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
4200 short int var3 /* : Bool */;
4201 int cltype;
4202 int idtype;
4203 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4204 short int var4 /* : Bool */;
4205 int cltype5;
4206 int idtype6;
4207 val* var7 /* : ADoExpr */;
4208 val* var8 /* : null */;
4209 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
4210 long var9 /* : Int */;
4211 long var10 /* : Int */;
4212 var_p = p0;
4213 var = NULL;
4214 var_node_list = var;
4215 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4216 var_nodearraylist2 = var1;
4217 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4218 var_nodearraylist1 = var2;
4219 var_tkwdonode2 = var_nodearraylist1;
4220 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
4221 cltype = type_nullable_parser_nodes__TKwdo.color;
4222 idtype = type_nullable_parser_nodes__TKwdo.id;
4223 if(var_tkwdonode2 == NULL) {
4224 var3 = 1;
4225 } else {
4226 if(cltype >= var_tkwdonode2->type->table_size) {
4227 var3 = 0;
4228 } else {
4229 var3 = var_tkwdonode2->type->type_table[cltype] == idtype;
4230 }
4231 }
4232 if (!var3) {
4233 fprintf(stderr, "Runtime error: %s", "Assert failed");
4234 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25918);
4235 show_backtrace(1);
4236 }
4237 var_pexprnode3 = var_nodearraylist2;
4238 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4239 cltype5 = type_nullable_parser_nodes__AExpr.color;
4240 idtype6 = type_nullable_parser_nodes__AExpr.id;
4241 if(var_pexprnode3 == NULL) {
4242 var4 = 1;
4243 } else {
4244 if(cltype5 >= var_pexprnode3->type->table_size) {
4245 var4 = 0;
4246 } else {
4247 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
4248 }
4249 }
4250 if (!var4) {
4251 fprintf(stderr, "Runtime error: %s", "Assert failed");
4252 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25920);
4253 show_backtrace(1);
4254 }
4255 var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
4256 var8 = NULL;
4257 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ADoExpr__init_adoexpr]))(var7, var_tkwdonode2, var_pexprnode3, var8) /* init_adoexpr on <var7:ADoExpr>*/;
4258 var_pexprnode1 = var7;
4259 var_node_list = var_pexprnode1;
4260 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction691> */
4261 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4262 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4263 RET_LABEL:;
4264 }
4265 /* method parser#ReduceAction691#action for (self: Object, Parser) */
4266 void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) {
4267 parser__ReduceAction691__action(self, p0);
4268 RET_LABEL:;
4269 }
4270 /* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */
4271 void parser__ReduceAction692__action(val* self, val* p0) {
4272 val* var_p /* var p: Parser */;
4273 val* var /* : null */;
4274 val* var_node_list /* var node_list: nullable Object */;
4275 val* var1 /* : nullable Object */;
4276 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4277 val* var2 /* : nullable Object */;
4278 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4279 val* var3 /* : nullable Object */;
4280 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4281 val* var4 /* : nullable Object */;
4282 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4283 val* var5 /* : nullable Object */;
4284 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4285 val* var6 /* : nullable Object */;
4286 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4287 val* var7 /* : nullable Object */;
4288 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4289 val* var8 /* : nullable Object */;
4290 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4291 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4292 short int var9 /* : Bool */;
4293 int cltype;
4294 int idtype;
4295 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4296 short int var10 /* : Bool */;
4297 int cltype11;
4298 int idtype12;
4299 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
4300 short int var13 /* : Bool */;
4301 int cltype14;
4302 int idtype15;
4303 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4304 short int var16 /* : Bool */;
4305 int cltype17;
4306 int idtype18;
4307 val* var19 /* : AIfExpr */;
4308 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4309 long var20 /* : Int */;
4310 long var21 /* : Int */;
4311 var_p = p0;
4312 var = NULL;
4313 var_node_list = var;
4314 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4315 var_nodearraylist8 = var1;
4316 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4317 var_nodearraylist7 = var2;
4318 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4319 var_nodearraylist6 = var3;
4320 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4321 var_nodearraylist5 = var4;
4322 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4323 var_nodearraylist4 = var5;
4324 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4325 var_nodearraylist3 = var6;
4326 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4327 var_nodearraylist2 = var7;
4328 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4329 var_nodearraylist1 = var8;
4330 var_tkwifnode2 = var_nodearraylist1;
4331 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4332 cltype = type_nullable_parser_nodes__TKwif.color;
4333 idtype = type_nullable_parser_nodes__TKwif.id;
4334 if(var_tkwifnode2 == NULL) {
4335 var9 = 1;
4336 } else {
4337 if(cltype >= var_tkwifnode2->type->table_size) {
4338 var9 = 0;
4339 } else {
4340 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
4341 }
4342 }
4343 if (!var9) {
4344 fprintf(stderr, "Runtime error: %s", "Assert failed");
4345 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25944);
4346 show_backtrace(1);
4347 }
4348 var_pexprnode3 = var_nodearraylist3;
4349 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4350 cltype11 = type_nullable_parser_nodes__AExpr.color;
4351 idtype12 = type_nullable_parser_nodes__AExpr.id;
4352 if(var_pexprnode3 == NULL) {
4353 var10 = 1;
4354 } else {
4355 if(cltype11 >= var_pexprnode3->type->table_size) {
4356 var10 = 0;
4357 } else {
4358 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
4359 }
4360 }
4361 if (!var10) {
4362 fprintf(stderr, "Runtime error: %s", "Assert failed");
4363 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25946);
4364 show_backtrace(1);
4365 }
4366 var_pexprnode4 = var_nodearraylist6;
4367 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
4368 cltype14 = type_nullable_parser_nodes__AExpr.color;
4369 idtype15 = type_nullable_parser_nodes__AExpr.id;
4370 if(var_pexprnode4 == NULL) {
4371 var13 = 1;
4372 } else {
4373 if(cltype14 >= var_pexprnode4->type->table_size) {
4374 var13 = 0;
4375 } else {
4376 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
4377 }
4378 }
4379 if (!var13) {
4380 fprintf(stderr, "Runtime error: %s", "Assert failed");
4381 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25948);
4382 show_backtrace(1);
4383 }
4384 var_pexprnode5 = var_nodearraylist8;
4385 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4386 cltype17 = type_nullable_parser_nodes__AExpr.color;
4387 idtype18 = type_nullable_parser_nodes__AExpr.id;
4388 if(var_pexprnode5 == NULL) {
4389 var16 = 1;
4390 } else {
4391 if(cltype17 >= var_pexprnode5->type->table_size) {
4392 var16 = 0;
4393 } else {
4394 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
4395 }
4396 }
4397 if (!var16) {
4398 fprintf(stderr, "Runtime error: %s", "Assert failed");
4399 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25950);
4400 show_backtrace(1);
4401 }
4402 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
4403 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on <var19:AIfExpr>*/;
4404 var_pexprnode1 = var19;
4405 var_node_list = var_pexprnode1;
4406 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction692> */
4407 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4408 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4409 RET_LABEL:;
4410 }
4411 /* method parser#ReduceAction692#action for (self: Object, Parser) */
4412 void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) {
4413 parser__ReduceAction692__action(self, p0);
4414 RET_LABEL:;
4415 }
4416 /* method parser#ReduceAction693#action for (self: ReduceAction693, Parser) */
4417 void parser__ReduceAction693__action(val* self, val* p0) {
4418 val* var_p /* var p: Parser */;
4419 val* var /* : null */;
4420 val* var_node_list /* var node_list: nullable Object */;
4421 val* var1 /* : nullable Object */;
4422 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4423 val* var2 /* : nullable Object */;
4424 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4425 val* var3 /* : nullable Object */;
4426 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4427 val* var4 /* : nullable Object */;
4428 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4429 val* var5 /* : nullable Object */;
4430 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4431 val* var6 /* : nullable Object */;
4432 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4433 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4434 short int var7 /* : Bool */;
4435 int cltype;
4436 int idtype;
4437 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4438 short int var8 /* : Bool */;
4439 int cltype9;
4440 int idtype10;
4441 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
4442 short int var11 /* : Bool */;
4443 int cltype12;
4444 int idtype13;
4445 val* var14 /* : AIfExpr */;
4446 val* var15 /* : null */;
4447 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4448 long var16 /* : Int */;
4449 long var17 /* : Int */;
4450 var_p = p0;
4451 var = NULL;
4452 var_node_list = var;
4453 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4454 var_nodearraylist6 = var1;
4455 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4456 var_nodearraylist5 = var2;
4457 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4458 var_nodearraylist4 = var3;
4459 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4460 var_nodearraylist3 = var4;
4461 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4462 var_nodearraylist2 = var5;
4463 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4464 var_nodearraylist1 = var6;
4465 var_tkwifnode2 = var_nodearraylist1;
4466 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4467 cltype = type_nullable_parser_nodes__TKwif.color;
4468 idtype = type_nullable_parser_nodes__TKwif.id;
4469 if(var_tkwifnode2 == NULL) {
4470 var7 = 1;
4471 } else {
4472 if(cltype >= var_tkwifnode2->type->table_size) {
4473 var7 = 0;
4474 } else {
4475 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
4476 }
4477 }
4478 if (!var7) {
4479 fprintf(stderr, "Runtime error: %s", "Assert failed");
4480 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25973);
4481 show_backtrace(1);
4482 }
4483 var_pexprnode3 = var_nodearraylist3;
4484 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4485 cltype9 = type_nullable_parser_nodes__AExpr.color;
4486 idtype10 = type_nullable_parser_nodes__AExpr.id;
4487 if(var_pexprnode3 == NULL) {
4488 var8 = 1;
4489 } else {
4490 if(cltype9 >= var_pexprnode3->type->table_size) {
4491 var8 = 0;
4492 } else {
4493 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
4494 }
4495 }
4496 if (!var8) {
4497 fprintf(stderr, "Runtime error: %s", "Assert failed");
4498 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25975);
4499 show_backtrace(1);
4500 }
4501 var_pexprnode4 = var_nodearraylist6;
4502 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
4503 cltype12 = type_nullable_parser_nodes__AExpr.color;
4504 idtype13 = type_nullable_parser_nodes__AExpr.id;
4505 if(var_pexprnode4 == NULL) {
4506 var11 = 1;
4507 } else {
4508 if(cltype12 >= var_pexprnode4->type->table_size) {
4509 var11 = 0;
4510 } else {
4511 var11 = var_pexprnode4->type->type_table[cltype12] == idtype13;
4512 }
4513 }
4514 if (!var11) {
4515 fprintf(stderr, "Runtime error: %s", "Assert failed");
4516 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25977);
4517 show_backtrace(1);
4518 }
4519 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
4520 var15 = NULL;
4521 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var15) /* init_aifexpr on <var14:AIfExpr>*/;
4522 var_pexprnode1 = var14;
4523 var_node_list = var_pexprnode1;
4524 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction693> */
4525 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
4526 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
4527 RET_LABEL:;
4528 }
4529 /* method parser#ReduceAction693#action for (self: Object, Parser) */
4530 void VIRTUAL_parser__ReduceAction693__action(val* self, val* p0) {
4531 parser__ReduceAction693__action(self, p0);
4532 RET_LABEL:;
4533 }
4534 /* method parser#ReduceAction694#action for (self: ReduceAction694, Parser) */
4535 void parser__ReduceAction694__action(val* self, val* p0) {
4536 val* var_p /* var p: Parser */;
4537 val* var /* : null */;
4538 val* var_node_list /* var node_list: nullable Object */;
4539 val* var1 /* : nullable Object */;
4540 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4541 val* var2 /* : nullable Object */;
4542 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4543 val* var3 /* : nullable Object */;
4544 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4545 val* var4 /* : nullable Object */;
4546 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4547 val* var5 /* : nullable Object */;
4548 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4549 val* var6 /* : nullable Object */;
4550 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4551 val* var7 /* : nullable Object */;
4552 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4553 val* var8 /* : nullable Object */;
4554 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4555 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4556 short int var9 /* : Bool */;
4557 int cltype;
4558 int idtype;
4559 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4560 short int var10 /* : Bool */;
4561 int cltype11;
4562 int idtype12;
4563 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
4564 short int var13 /* : Bool */;
4565 int cltype14;
4566 int idtype15;
4567 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4568 short int var16 /* : Bool */;
4569 int cltype17;
4570 int idtype18;
4571 val* var19 /* : AIfExpr */;
4572 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4573 long var20 /* : Int */;
4574 long var21 /* : Int */;
4575 var_p = p0;
4576 var = NULL;
4577 var_node_list = var;
4578 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4579 var_nodearraylist8 = var1;
4580 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4581 var_nodearraylist7 = var2;
4582 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4583 var_nodearraylist6 = var3;
4584 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4585 var_nodearraylist5 = var4;
4586 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4587 var_nodearraylist4 = var5;
4588 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4589 var_nodearraylist3 = var6;
4590 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4591 var_nodearraylist2 = var7;
4592 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4593 var_nodearraylist1 = var8;
4594 var_tkwifnode2 = var_nodearraylist1;
4595 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4596 cltype = type_nullable_parser_nodes__TKwif.color;
4597 idtype = type_nullable_parser_nodes__TKwif.id;
4598 if(var_tkwifnode2 == NULL) {
4599 var9 = 1;
4600 } else {
4601 if(cltype >= var_tkwifnode2->type->table_size) {
4602 var9 = 0;
4603 } else {
4604 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
4605 }
4606 }
4607 if (!var9) {
4608 fprintf(stderr, "Runtime error: %s", "Assert failed");
4609 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26002);
4610 show_backtrace(1);
4611 }
4612 var_pexprnode3 = var_nodearraylist3;
4613 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4614 cltype11 = type_nullable_parser_nodes__AExpr.color;
4615 idtype12 = type_nullable_parser_nodes__AExpr.id;
4616 if(var_pexprnode3 == NULL) {
4617 var10 = 1;
4618 } else {
4619 if(cltype11 >= var_pexprnode3->type->table_size) {
4620 var10 = 0;
4621 } else {
4622 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
4623 }
4624 }
4625 if (!var10) {
4626 fprintf(stderr, "Runtime error: %s", "Assert failed");
4627 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26004);
4628 show_backtrace(1);
4629 }
4630 var_pexprnode4 = var_nodearraylist7;
4631 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
4632 cltype14 = type_nullable_parser_nodes__AExpr.color;
4633 idtype15 = type_nullable_parser_nodes__AExpr.id;
4634 if(var_pexprnode4 == NULL) {
4635 var13 = 1;
4636 } else {
4637 if(cltype14 >= var_pexprnode4->type->table_size) {
4638 var13 = 0;
4639 } else {
4640 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
4641 }
4642 }
4643 if (!var13) {
4644 fprintf(stderr, "Runtime error: %s", "Assert failed");
4645 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26006);
4646 show_backtrace(1);
4647 }
4648 var_pexprnode5 = var_nodearraylist8;
4649 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4650 cltype17 = type_nullable_parser_nodes__AExpr.color;
4651 idtype18 = type_nullable_parser_nodes__AExpr.id;
4652 if(var_pexprnode5 == NULL) {
4653 var16 = 1;
4654 } else {
4655 if(cltype17 >= var_pexprnode5->type->table_size) {
4656 var16 = 0;
4657 } else {
4658 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
4659 }
4660 }
4661 if (!var16) {
4662 fprintf(stderr, "Runtime error: %s", "Assert failed");
4663 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26008);
4664 show_backtrace(1);
4665 }
4666 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
4667 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var19, var_tkwifnode2, var_pexprnode3, var_pexprnode4, var_pexprnode5) /* init_aifexpr on <var19:AIfExpr>*/;
4668 var_pexprnode1 = var19;
4669 var_node_list = var_pexprnode1;
4670 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction694> */
4671 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4672 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4673 RET_LABEL:;
4674 }
4675 /* method parser#ReduceAction694#action for (self: Object, Parser) */
4676 void VIRTUAL_parser__ReduceAction694__action(val* self, val* p0) {
4677 parser__ReduceAction694__action(self, p0);
4678 RET_LABEL:;
4679 }
4680 /* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */
4681 void parser__ReduceAction695__action(val* self, val* p0) {
4682 val* var_p /* var p: Parser */;
4683 val* var /* : null */;
4684 val* var_node_list /* var node_list: nullable Object */;
4685 val* var1 /* : nullable Object */;
4686 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4687 val* var2 /* : nullable Object */;
4688 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4689 val* var3 /* : nullable Object */;
4690 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4691 val* var4 /* : nullable Object */;
4692 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4693 val* var5 /* : nullable Object */;
4694 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4695 val* var6 /* : nullable Object */;
4696 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4697 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4698 short int var7 /* : Bool */;
4699 int cltype;
4700 int idtype;
4701 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4702 short int var8 /* : Bool */;
4703 int cltype9;
4704 int idtype10;
4705 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4706 short int var11 /* : Bool */;
4707 int cltype12;
4708 int idtype13;
4709 val* var14 /* : AIfExpr */;
4710 val* var15 /* : null */;
4711 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4712 long var16 /* : Int */;
4713 long var17 /* : Int */;
4714 var_p = p0;
4715 var = NULL;
4716 var_node_list = var;
4717 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4718 var_nodearraylist6 = var1;
4719 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4720 var_nodearraylist5 = var2;
4721 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4722 var_nodearraylist4 = var3;
4723 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4724 var_nodearraylist3 = var4;
4725 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4726 var_nodearraylist2 = var5;
4727 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4728 var_nodearraylist1 = var6;
4729 var_tkwifnode2 = var_nodearraylist1;
4730 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4731 cltype = type_nullable_parser_nodes__TKwif.color;
4732 idtype = type_nullable_parser_nodes__TKwif.id;
4733 if(var_tkwifnode2 == NULL) {
4734 var7 = 1;
4735 } else {
4736 if(cltype >= var_tkwifnode2->type->table_size) {
4737 var7 = 0;
4738 } else {
4739 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
4740 }
4741 }
4742 if (!var7) {
4743 fprintf(stderr, "Runtime error: %s", "Assert failed");
4744 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26031);
4745 show_backtrace(1);
4746 }
4747 var_pexprnode3 = var_nodearraylist3;
4748 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4749 cltype9 = type_nullable_parser_nodes__AExpr.color;
4750 idtype10 = type_nullable_parser_nodes__AExpr.id;
4751 if(var_pexprnode3 == NULL) {
4752 var8 = 1;
4753 } else {
4754 if(cltype9 >= var_pexprnode3->type->table_size) {
4755 var8 = 0;
4756 } else {
4757 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
4758 }
4759 }
4760 if (!var8) {
4761 fprintf(stderr, "Runtime error: %s", "Assert failed");
4762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26033);
4763 show_backtrace(1);
4764 }
4765 var_pexprnode5 = var_nodearraylist6;
4766 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4767 cltype12 = type_nullable_parser_nodes__AExpr.color;
4768 idtype13 = type_nullable_parser_nodes__AExpr.id;
4769 if(var_pexprnode5 == NULL) {
4770 var11 = 1;
4771 } else {
4772 if(cltype12 >= var_pexprnode5->type->table_size) {
4773 var11 = 0;
4774 } else {
4775 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
4776 }
4777 }
4778 if (!var11) {
4779 fprintf(stderr, "Runtime error: %s", "Assert failed");
4780 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26035);
4781 show_backtrace(1);
4782 }
4783 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
4784 var15 = NULL;
4785 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var14, var_tkwifnode2, var_pexprnode3, var15, var_pexprnode5) /* init_aifexpr on <var14:AIfExpr>*/;
4786 var_pexprnode1 = var14;
4787 var_node_list = var_pexprnode1;
4788 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction695> */
4789 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
4790 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
4791 RET_LABEL:;
4792 }
4793 /* method parser#ReduceAction695#action for (self: Object, Parser) */
4794 void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) {
4795 parser__ReduceAction695__action(self, p0);
4796 RET_LABEL:;
4797 }
4798 /* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */
4799 void parser__ReduceAction696__action(val* self, val* p0) {
4800 val* var_p /* var p: Parser */;
4801 val* var /* : null */;
4802 val* var_node_list /* var node_list: nullable Object */;
4803 val* var1 /* : nullable Object */;
4804 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4805 val* var2 /* : nullable Object */;
4806 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4807 val* var3 /* : nullable Object */;
4808 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4809 val* var4 /* : nullable Object */;
4810 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4811 val* var5 /* : nullable Object */;
4812 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4813 val* var6 /* : nullable Object */;
4814 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4815 val* var7 /* : nullable Object */;
4816 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4817 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4818 short int var8 /* : Bool */;
4819 int cltype;
4820 int idtype;
4821 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4822 short int var9 /* : Bool */;
4823 int cltype10;
4824 int idtype11;
4825 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4826 short int var12 /* : Bool */;
4827 int cltype13;
4828 int idtype14;
4829 val* var15 /* : AIfExpr */;
4830 val* var16 /* : null */;
4831 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4832 long var17 /* : Int */;
4833 long var18 /* : Int */;
4834 var_p = p0;
4835 var = NULL;
4836 var_node_list = var;
4837 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4838 var_nodearraylist7 = var1;
4839 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4840 var_nodearraylist6 = var2;
4841 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4842 var_nodearraylist5 = var3;
4843 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4844 var_nodearraylist4 = var4;
4845 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4846 var_nodearraylist3 = var5;
4847 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4848 var_nodearraylist2 = var6;
4849 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4850 var_nodearraylist1 = var7;
4851 var_tkwifnode2 = var_nodearraylist1;
4852 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4853 cltype = type_nullable_parser_nodes__TKwif.color;
4854 idtype = type_nullable_parser_nodes__TKwif.id;
4855 if(var_tkwifnode2 == NULL) {
4856 var8 = 1;
4857 } else {
4858 if(cltype >= var_tkwifnode2->type->table_size) {
4859 var8 = 0;
4860 } else {
4861 var8 = var_tkwifnode2->type->type_table[cltype] == idtype;
4862 }
4863 }
4864 if (!var8) {
4865 fprintf(stderr, "Runtime error: %s", "Assert failed");
4866 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26059);
4867 show_backtrace(1);
4868 }
4869 var_pexprnode3 = var_nodearraylist3;
4870 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4871 cltype10 = type_nullable_parser_nodes__AExpr.color;
4872 idtype11 = type_nullable_parser_nodes__AExpr.id;
4873 if(var_pexprnode3 == NULL) {
4874 var9 = 1;
4875 } else {
4876 if(cltype10 >= var_pexprnode3->type->table_size) {
4877 var9 = 0;
4878 } else {
4879 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
4880 }
4881 }
4882 if (!var9) {
4883 fprintf(stderr, "Runtime error: %s", "Assert failed");
4884 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26061);
4885 show_backtrace(1);
4886 }
4887 var_pexprnode5 = var_nodearraylist7;
4888 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4889 cltype13 = type_nullable_parser_nodes__AExpr.color;
4890 idtype14 = type_nullable_parser_nodes__AExpr.id;
4891 if(var_pexprnode5 == NULL) {
4892 var12 = 1;
4893 } else {
4894 if(cltype13 >= var_pexprnode5->type->table_size) {
4895 var12 = 0;
4896 } else {
4897 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
4898 }
4899 }
4900 if (!var12) {
4901 fprintf(stderr, "Runtime error: %s", "Assert failed");
4902 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26063);
4903 show_backtrace(1);
4904 }
4905 var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
4906 var16 = NULL;
4907 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIfExpr__init_aifexpr]))(var15, var_tkwifnode2, var_pexprnode3, var16, var_pexprnode5) /* init_aifexpr on <var15:AIfExpr>*/;
4908 var_pexprnode1 = var15;
4909 var_node_list = var_pexprnode1;
4910 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction696> */
4911 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
4912 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
4913 RET_LABEL:;
4914 }
4915 /* method parser#ReduceAction696#action for (self: Object, Parser) */
4916 void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) {
4917 parser__ReduceAction696__action(self, p0);
4918 RET_LABEL:;
4919 }
4920 /* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */
4921 void parser__ReduceAction699__action(val* self, val* p0) {
4922 val* var_p /* var p: Parser */;
4923 val* var /* : null */;
4924 val* var_node_list /* var node_list: nullable Object */;
4925 val* var1 /* : nullable Object */;
4926 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4927 val* var2 /* : nullable Object */;
4928 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4929 val* var3 /* : nullable Object */;
4930 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4931 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
4932 short int var4 /* : Bool */;
4933 int cltype;
4934 int idtype;
4935 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4936 short int var5 /* : Bool */;
4937 int cltype6;
4938 int idtype7;
4939 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
4940 short int var8 /* : Bool */;
4941 int cltype9;
4942 int idtype10;
4943 val* var11 /* : ALoopExpr */;
4944 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
4945 long var12 /* : Int */;
4946 long var13 /* : Int */;
4947 var_p = p0;
4948 var = NULL;
4949 var_node_list = var;
4950 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4951 var_nodearraylist3 = var1;
4952 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4953 var_nodearraylist2 = var2;
4954 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4955 var_nodearraylist1 = var3;
4956 var_tkwloopnode2 = var_nodearraylist1;
4957 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
4958 cltype = type_nullable_parser_nodes__TKwloop.color;
4959 idtype = type_nullable_parser_nodes__TKwloop.id;
4960 if(var_tkwloopnode2 == NULL) {
4961 var4 = 1;
4962 } else {
4963 if(cltype >= var_tkwloopnode2->type->table_size) {
4964 var4 = 0;
4965 } else {
4966 var4 = var_tkwloopnode2->type->type_table[cltype] == idtype;
4967 }
4968 }
4969 if (!var4) {
4970 fprintf(stderr, "Runtime error: %s", "Assert failed");
4971 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26083);
4972 show_backtrace(1);
4973 }
4974 var_pexprnode3 = var_nodearraylist2;
4975 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4976 cltype6 = type_nullable_parser_nodes__AExpr.color;
4977 idtype7 = type_nullable_parser_nodes__AExpr.id;
4978 if(var_pexprnode3 == NULL) {
4979 var5 = 1;
4980 } else {
4981 if(cltype6 >= var_pexprnode3->type->table_size) {
4982 var5 = 0;
4983 } else {
4984 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
4985 }
4986 }
4987 if (!var5) {
4988 fprintf(stderr, "Runtime error: %s", "Assert failed");
4989 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26085);
4990 show_backtrace(1);
4991 }
4992 var_plabelnode4 = var_nodearraylist3;
4993 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
4994 cltype9 = type_nullable_parser_nodes__ALabel.color;
4995 idtype10 = type_nullable_parser_nodes__ALabel.id;
4996 if(var_plabelnode4 == NULL) {
4997 var8 = 1;
4998 } else {
4999 if(cltype9 >= var_plabelnode4->type->table_size) {
5000 var8 = 0;
5001 } else {
5002 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
5003 }
5004 }
5005 if (!var8) {
5006 fprintf(stderr, "Runtime error: %s", "Assert failed");
5007 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26087);
5008 show_backtrace(1);
5009 }
5010 var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
5011 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var11, var_tkwloopnode2, var_pexprnode3, var_plabelnode4) /* init_aloopexpr on <var11:ALoopExpr>*/;
5012 var_pexprnode1 = var11;
5013 var_node_list = var_pexprnode1;
5014 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction699> */
5015 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
5016 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
5017 RET_LABEL:;
5018 }
5019 /* method parser#ReduceAction699#action for (self: Object, Parser) */
5020 void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) {
5021 parser__ReduceAction699__action(self, p0);
5022 RET_LABEL:;
5023 }
5024 /* method parser#ReduceAction700#action for (self: ReduceAction700, Parser) */
5025 void parser__ReduceAction700__action(val* self, val* p0) {
5026 val* var_p /* var p: Parser */;
5027 val* var /* : null */;
5028 val* var_node_list /* var node_list: nullable Object */;
5029 val* var1 /* : nullable Object */;
5030 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5031 val* var2 /* : nullable Object */;
5032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5033 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
5034 short int var3 /* : Bool */;
5035 int cltype;
5036 int idtype;
5037 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5038 short int var4 /* : Bool */;
5039 int cltype5;
5040 int idtype6;
5041 val* var7 /* : ALoopExpr */;
5042 val* var8 /* : null */;
5043 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
5044 long var9 /* : Int */;
5045 long var10 /* : Int */;
5046 var_p = p0;
5047 var = NULL;
5048 var_node_list = var;
5049 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5050 var_nodearraylist2 = var1;
5051 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5052 var_nodearraylist1 = var2;
5053 var_tkwloopnode2 = var_nodearraylist1;
5054 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
5055 cltype = type_nullable_parser_nodes__TKwloop.color;
5056 idtype = type_nullable_parser_nodes__TKwloop.id;
5057 if(var_tkwloopnode2 == NULL) {
5058 var3 = 1;
5059 } else {
5060 if(cltype >= var_tkwloopnode2->type->table_size) {
5061 var3 = 0;
5062 } else {
5063 var3 = var_tkwloopnode2->type->type_table[cltype] == idtype;
5064 }
5065 }
5066 if (!var3) {
5067 fprintf(stderr, "Runtime error: %s", "Assert failed");
5068 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26105);
5069 show_backtrace(1);
5070 }
5071 var_pexprnode3 = var_nodearraylist2;
5072 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5073 cltype5 = type_nullable_parser_nodes__AExpr.color;
5074 idtype6 = type_nullable_parser_nodes__AExpr.id;
5075 if(var_pexprnode3 == NULL) {
5076 var4 = 1;
5077 } else {
5078 if(cltype5 >= var_pexprnode3->type->table_size) {
5079 var4 = 0;
5080 } else {
5081 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
5082 }
5083 }
5084 if (!var4) {
5085 fprintf(stderr, "Runtime error: %s", "Assert failed");
5086 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26107);
5087 show_backtrace(1);
5088 }
5089 var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
5090 var8 = NULL;
5091 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALoopExpr__init_aloopexpr]))(var7, var_tkwloopnode2, var_pexprnode3, var8) /* init_aloopexpr on <var7:ALoopExpr>*/;
5092 var_pexprnode1 = var7;
5093 var_node_list = var_pexprnode1;
5094 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction700> */
5095 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
5096 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
5097 RET_LABEL:;
5098 }
5099 /* method parser#ReduceAction700#action for (self: Object, Parser) */
5100 void VIRTUAL_parser__ReduceAction700__action(val* self, val* p0) {
5101 parser__ReduceAction700__action(self, p0);
5102 RET_LABEL:;
5103 }
5104 /* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */
5105 void parser__ReduceAction701__action(val* self, val* p0) {
5106 val* var_p /* var p: Parser */;
5107 val* var /* : null */;
5108 val* var_node_list /* var node_list: nullable Object */;
5109 val* var1 /* : nullable Object */;
5110 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5111 val* var2 /* : nullable Object */;
5112 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5113 val* var3 /* : nullable Object */;
5114 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5115 val* var4 /* : nullable Object */;
5116 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5117 val* var5 /* : nullable Object */;
5118 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5119 val* var6 /* : nullable Object */;
5120 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5121 val* var7 /* : nullable Object */;
5122 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5123 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
5124 short int var8 /* : Bool */;
5125 int cltype;
5126 int idtype;
5127 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5128 short int var9 /* : Bool */;
5129 int cltype10;
5130 int idtype11;
5131 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
5132 short int var12 /* : Bool */;
5133 int cltype13;
5134 int idtype14;
5135 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5136 short int var15 /* : Bool */;
5137 int cltype16;
5138 int idtype17;
5139 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
5140 short int var18 /* : Bool */;
5141 int cltype19;
5142 int idtype20;
5143 val* var21 /* : AWhileExpr */;
5144 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
5145 long var22 /* : Int */;
5146 long var23 /* : Int */;
5147 var_p = p0;
5148 var = NULL;
5149 var_node_list = var;
5150 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5151 var_nodearraylist7 = var1;
5152 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5153 var_nodearraylist6 = var2;
5154 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5155 var_nodearraylist5 = var3;
5156 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5157 var_nodearraylist4 = var4;
5158 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5159 var_nodearraylist3 = var5;
5160 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5161 var_nodearraylist2 = var6;
5162 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5163 var_nodearraylist1 = var7;
5164 var_tkwwhilenode2 = var_nodearraylist1;
5165 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
5166 cltype = type_nullable_parser_nodes__TKwwhile.color;
5167 idtype = type_nullable_parser_nodes__TKwwhile.id;
5168 if(var_tkwwhilenode2 == NULL) {
5169 var8 = 1;
5170 } else {
5171 if(cltype >= var_tkwwhilenode2->type->table_size) {
5172 var8 = 0;
5173 } else {
5174 var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
5175 }
5176 }
5177 if (!var8) {
5178 fprintf(stderr, "Runtime error: %s", "Assert failed");
5179 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26130);
5180 show_backtrace(1);
5181 }
5182 var_pexprnode3 = var_nodearraylist3;
5183 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5184 cltype10 = type_nullable_parser_nodes__AExpr.color;
5185 idtype11 = type_nullable_parser_nodes__AExpr.id;
5186 if(var_pexprnode3 == NULL) {
5187 var9 = 1;
5188 } else {
5189 if(cltype10 >= var_pexprnode3->type->table_size) {
5190 var9 = 0;
5191 } else {
5192 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
5193 }
5194 }
5195 if (!var9) {
5196 fprintf(stderr, "Runtime error: %s", "Assert failed");
5197 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26132);
5198 show_backtrace(1);
5199 }
5200 var_tkwdonode4 = var_nodearraylist5;
5201 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
5202 cltype13 = type_nullable_parser_nodes__TKwdo.color;
5203 idtype14 = type_nullable_parser_nodes__TKwdo.id;
5204 if(var_tkwdonode4 == NULL) {
5205 var12 = 1;
5206 } else {
5207 if(cltype13 >= var_tkwdonode4->type->table_size) {
5208 var12 = 0;
5209 } else {
5210 var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14;
5211 }
5212 }
5213 if (!var12) {
5214 fprintf(stderr, "Runtime error: %s", "Assert failed");
5215 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26134);
5216 show_backtrace(1);
5217 }
5218 var_pexprnode5 = var_nodearraylist6;
5219 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5220 cltype16 = type_nullable_parser_nodes__AExpr.color;
5221 idtype17 = type_nullable_parser_nodes__AExpr.id;
5222 if(var_pexprnode5 == NULL) {
5223 var15 = 1;
5224 } else {
5225 if(cltype16 >= var_pexprnode5->type->table_size) {
5226 var15 = 0;
5227 } else {
5228 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
5229 }
5230 }
5231 if (!var15) {
5232 fprintf(stderr, "Runtime error: %s", "Assert failed");
5233 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26136);
5234 show_backtrace(1);
5235 }
5236 var_plabelnode6 = var_nodearraylist7;
5237 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
5238 cltype19 = type_nullable_parser_nodes__ALabel.color;
5239 idtype20 = type_nullable_parser_nodes__ALabel.id;
5240 if(var_plabelnode6 == NULL) {
5241 var18 = 1;
5242 } else {
5243 if(cltype19 >= var_plabelnode6->type->table_size) {
5244 var18 = 0;
5245 } else {
5246 var18 = var_plabelnode6->type->type_table[cltype19] == idtype20;
5247 }
5248 }
5249 if (!var18) {
5250 fprintf(stderr, "Runtime error: %s", "Assert failed");
5251 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26138);
5252 show_backtrace(1);
5253 }
5254 var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
5255 ((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var21, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6) /* init_awhileexpr on <var21:AWhileExpr>*/;
5256 var_pexprnode1 = var21;
5257 var_node_list = var_pexprnode1;
5258 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction701> */
5259 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5260 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5261 RET_LABEL:;
5262 }
5263 /* method parser#ReduceAction701#action for (self: Object, Parser) */
5264 void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) {
5265 parser__ReduceAction701__action(self, p0);
5266 RET_LABEL:;
5267 }
5268 /* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */
5269 void parser__ReduceAction702__action(val* self, val* p0) {
5270 val* var_p /* var p: Parser */;
5271 val* var /* : null */;
5272 val* var_node_list /* var node_list: nullable Object */;
5273 val* var1 /* : nullable Object */;
5274 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5275 val* var2 /* : nullable Object */;
5276 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5277 val* var3 /* : nullable Object */;
5278 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5279 val* var4 /* : nullable Object */;
5280 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5281 val* var5 /* : nullable Object */;
5282 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5283 val* var6 /* : nullable Object */;
5284 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5285 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
5286 short int var7 /* : Bool */;
5287 int cltype;
5288 int idtype;
5289 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5290 short int var8 /* : Bool */;
5291 int cltype9;
5292 int idtype10;
5293 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
5294 short int var11 /* : Bool */;
5295 int cltype12;
5296 int idtype13;
5297 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5298 short int var14 /* : Bool */;
5299 int cltype15;
5300 int idtype16;
5301 val* var17 /* : AWhileExpr */;
5302 val* var18 /* : null */;
5303 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
5304 long var19 /* : Int */;
5305 long var20 /* : Int */;
5306 var_p = p0;
5307 var = NULL;
5308 var_node_list = var;
5309 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5310 var_nodearraylist6 = var1;
5311 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5312 var_nodearraylist5 = var2;
5313 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5314 var_nodearraylist4 = var3;
5315 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5316 var_nodearraylist3 = var4;
5317 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5318 var_nodearraylist2 = var5;
5319 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5320 var_nodearraylist1 = var6;
5321 var_tkwwhilenode2 = var_nodearraylist1;
5322 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
5323 cltype = type_nullable_parser_nodes__TKwwhile.color;
5324 idtype = type_nullable_parser_nodes__TKwwhile.id;
5325 if(var_tkwwhilenode2 == NULL) {
5326 var7 = 1;
5327 } else {
5328 if(cltype >= var_tkwwhilenode2->type->table_size) {
5329 var7 = 0;
5330 } else {
5331 var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
5332 }
5333 }
5334 if (!var7) {
5335 fprintf(stderr, "Runtime error: %s", "Assert failed");
5336 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26162);
5337 show_backtrace(1);
5338 }
5339 var_pexprnode3 = var_nodearraylist3;
5340 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5341 cltype9 = type_nullable_parser_nodes__AExpr.color;
5342 idtype10 = type_nullable_parser_nodes__AExpr.id;
5343 if(var_pexprnode3 == NULL) {
5344 var8 = 1;
5345 } else {
5346 if(cltype9 >= var_pexprnode3->type->table_size) {
5347 var8 = 0;
5348 } else {
5349 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
5350 }
5351 }
5352 if (!var8) {
5353 fprintf(stderr, "Runtime error: %s", "Assert failed");
5354 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26164);
5355 show_backtrace(1);
5356 }
5357 var_tkwdonode4 = var_nodearraylist5;
5358 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
5359 cltype12 = type_nullable_parser_nodes__TKwdo.color;
5360 idtype13 = type_nullable_parser_nodes__TKwdo.id;
5361 if(var_tkwdonode4 == NULL) {
5362 var11 = 1;
5363 } else {
5364 if(cltype12 >= var_tkwdonode4->type->table_size) {
5365 var11 = 0;
5366 } else {
5367 var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13;
5368 }
5369 }
5370 if (!var11) {
5371 fprintf(stderr, "Runtime error: %s", "Assert failed");
5372 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26166);
5373 show_backtrace(1);
5374 }
5375 var_pexprnode5 = var_nodearraylist6;
5376 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5377 cltype15 = type_nullable_parser_nodes__AExpr.color;
5378 idtype16 = type_nullable_parser_nodes__AExpr.id;
5379 if(var_pexprnode5 == NULL) {
5380 var14 = 1;
5381 } else {
5382 if(cltype15 >= var_pexprnode5->type->table_size) {
5383 var14 = 0;
5384 } else {
5385 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
5386 }
5387 }
5388 if (!var14) {
5389 fprintf(stderr, "Runtime error: %s", "Assert failed");
5390 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26168);
5391 show_backtrace(1);
5392 }
5393 var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
5394 var18 = NULL;
5395 ((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AWhileExpr__init_awhileexpr]))(var17, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var18) /* init_awhileexpr on <var17:AWhileExpr>*/;
5396 var_pexprnode1 = var17;
5397 var_node_list = var_pexprnode1;
5398 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction702> */
5399 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
5400 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
5401 RET_LABEL:;
5402 }
5403 /* method parser#ReduceAction702#action for (self: Object, Parser) */
5404 void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) {
5405 parser__ReduceAction702__action(self, p0);
5406 RET_LABEL:;
5407 }
5408 /* method parser#ReduceAction703#action for (self: ReduceAction703, Parser) */
5409 void parser__ReduceAction703__action(val* self, val* p0) {
5410 val* var_p /* var p: Parser */;
5411 val* var /* : null */;
5412 val* var_node_list /* var node_list: nullable Object */;
5413 val* var1 /* : nullable Object */;
5414 val* var_nodearraylist15 /* var nodearraylist15: nullable Object */;
5415 val* var2 /* : nullable Object */;
5416 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
5417 val* var3 /* : nullable Object */;
5418 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
5419 val* var4 /* : nullable Object */;
5420 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
5421 val* var5 /* : nullable Object */;
5422 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5423 val* var6 /* : nullable Object */;
5424 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5425 val* var7 /* : nullable Object */;
5426 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5427 val* var8 /* : nullable Object */;
5428 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5429 val* var9 /* : nullable Object */;
5430 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5431 val* var10 /* : nullable Object */;
5432 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5433 val* var11 /* : nullable Object */;
5434 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5435 val* var12 /* : nullable Object */;
5436 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5437 val* var13 /* : nullable Object */;
5438 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5439 val* var14 /* : nullable Object */;
5440 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5441 val* var15 /* : nullable Object */;
5442 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5443 val* var16 /* : Array[Object] */;
5444 val* var_listnode4 /* var listnode4: Array[Object] */;
5445 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
5446 short int var17 /* : Bool */;
5447 int cltype;
5448 int idtype;
5449 val* var_listnode3 /* var listnode3: nullable Object */;
5450 short int var18 /* : Bool */;
5451 int cltype19;
5452 int idtype20;
5453 val* var21 /* : Array[Object] */;
5454 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5455 short int var22 /* : Bool */;
5456 int cltype23;
5457 int idtype24;
5458 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
5459 short int var25 /* : Bool */;
5460 int cltype26;
5461 int idtype27;
5462 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
5463 short int var28 /* : Bool */;
5464 int cltype29;
5465 int idtype30;
5466 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
5467 short int var31 /* : Bool */;
5468 int cltype32;
5469 int idtype33;
5470 val* var34 /* : AForExpr */;
5471 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
5472 long var35 /* : Int */;
5473 long var36 /* : Int */;
5474 var_p = p0;
5475 var = NULL;
5476 var_node_list = var;
5477 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5478 var_nodearraylist15 = var1;
5479 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5480 var_nodearraylist14 = var2;
5481 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5482 var_nodearraylist13 = var3;
5483 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5484 var_nodearraylist12 = var4;
5485 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5486 var_nodearraylist11 = var5;
5487 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5488 var_nodearraylist10 = var6;
5489 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5490 var_nodearraylist9 = var7;
5491 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5492 var_nodearraylist8 = var8;
5493 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5494 var_nodearraylist7 = var9;
5495 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5496 var_nodearraylist6 = var10;
5497 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5498 var_nodearraylist5 = var11;
5499 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5500 var_nodearraylist4 = var12;
5501 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5502 var_nodearraylist3 = var13;
5503 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5504 var_nodearraylist2 = var14;
5505 var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5506 var_nodearraylist1 = var15;
5507 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
5508 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
5509 var_listnode4 = var16;
5510 var_tkwfornode2 = var_nodearraylist1;
5511 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
5512 cltype = type_nullable_parser_nodes__TKwfor.color;
5513 idtype = type_nullable_parser_nodes__TKwfor.id;
5514 if(var_tkwfornode2 == NULL) {
5515 var17 = 1;
5516 } else {
5517 if(cltype >= var_tkwfornode2->type->table_size) {
5518 var17 = 0;
5519 } else {
5520 var17 = var_tkwfornode2->type->type_table[cltype] == idtype;
5521 }
5522 }
5523 if (!var17) {
5524 fprintf(stderr, "Runtime error: %s", "Assert failed");
5525 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26202);
5526 show_backtrace(1);
5527 }
5528 var_listnode3 = var_nodearraylist5;
5529 /* <var_listnode3:nullable Object> isa Array[Object] */
5530 cltype19 = type_array__Arraykernel__Object.color;
5531 idtype20 = type_array__Arraykernel__Object.id;
5532 if(var_listnode3 == NULL) {
5533 var18 = 0;
5534 } else {
5535 if(cltype19 >= var_listnode3->type->table_size) {
5536 var18 = 0;
5537 } else {
5538 var18 = var_listnode3->type->type_table[cltype19] == idtype20;
5539 }
5540 }
5541 if (!var18) {
5542 fprintf(stderr, "Runtime error: %s", "Assert failed");
5543 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26204);
5544 show_backtrace(1);
5545 }
5546 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction703>*/;
5547 var_listnode4 = var21;
5548 var_pexprnode5 = var_nodearraylist11;
5549 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5550 cltype23 = type_nullable_parser_nodes__AExpr.color;
5551 idtype24 = type_nullable_parser_nodes__AExpr.id;
5552 if(var_pexprnode5 == NULL) {
5553 var22 = 1;
5554 } else {
5555 if(cltype23 >= var_pexprnode5->type->table_size) {
5556 var22 = 0;
5557 } else {
5558 var22 = var_pexprnode5->type->type_table[cltype23] == idtype24;
5559 }
5560 }
5561 if (!var22) {
5562 fprintf(stderr, "Runtime error: %s", "Assert failed");
5563 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26207);
5564 show_backtrace(1);
5565 }
5566 var_tkwdonode6 = var_nodearraylist13;
5567 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
5568 cltype26 = type_nullable_parser_nodes__TKwdo.color;
5569 idtype27 = type_nullable_parser_nodes__TKwdo.id;
5570 if(var_tkwdonode6 == NULL) {
5571 var25 = 1;
5572 } else {
5573 if(cltype26 >= var_tkwdonode6->type->table_size) {
5574 var25 = 0;
5575 } else {
5576 var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27;
5577 }
5578 }
5579 if (!var25) {
5580 fprintf(stderr, "Runtime error: %s", "Assert failed");
5581 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26209);
5582 show_backtrace(1);
5583 }
5584 var_pexprnode7 = var_nodearraylist14;
5585 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
5586 cltype29 = type_nullable_parser_nodes__AExpr.color;
5587 idtype30 = type_nullable_parser_nodes__AExpr.id;
5588 if(var_pexprnode7 == NULL) {
5589 var28 = 1;
5590 } else {
5591 if(cltype29 >= var_pexprnode7->type->table_size) {
5592 var28 = 0;
5593 } else {
5594 var28 = var_pexprnode7->type->type_table[cltype29] == idtype30;
5595 }
5596 }
5597 if (!var28) {
5598 fprintf(stderr, "Runtime error: %s", "Assert failed");
5599 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26211);
5600 show_backtrace(1);
5601 }
5602 var_plabelnode8 = var_nodearraylist15;
5603 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
5604 cltype32 = type_nullable_parser_nodes__ALabel.color;
5605 idtype33 = type_nullable_parser_nodes__ALabel.id;
5606 if(var_plabelnode8 == NULL) {
5607 var31 = 1;
5608 } else {
5609 if(cltype32 >= var_plabelnode8->type->table_size) {
5610 var31 = 0;
5611 } else {
5612 var31 = var_plabelnode8->type->type_table[cltype32] == idtype33;
5613 }
5614 }
5615 if (!var31) {
5616 fprintf(stderr, "Runtime error: %s", "Assert failed");
5617 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26213);
5618 show_backtrace(1);
5619 }
5620 var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
5621 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var34, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on <var34:AForExpr>*/;
5622 var_pexprnode1 = var34;
5623 var_node_list = var_pexprnode1;
5624 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction703> */
5625 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
5626 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
5627 RET_LABEL:;
5628 }
5629 /* method parser#ReduceAction703#action for (self: Object, Parser) */
5630 void VIRTUAL_parser__ReduceAction703__action(val* self, val* p0) {
5631 parser__ReduceAction703__action(self, p0);
5632 RET_LABEL:;
5633 }
5634 /* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */
5635 void parser__ReduceAction704__action(val* self, val* p0) {
5636 val* var_p /* var p: Parser */;
5637 val* var /* : null */;
5638 val* var_node_list /* var node_list: nullable Object */;
5639 val* var1 /* : nullable Object */;
5640 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5641 val* var2 /* : nullable Object */;
5642 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5643 val* var3 /* : nullable Object */;
5644 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5645 val* var4 /* : nullable Object */;
5646 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5647 val* var5 /* : nullable Object */;
5648 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5649 val* var6 /* : nullable Object */;
5650 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5651 val* var7 /* : nullable Object */;
5652 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5653 val* var8 /* : nullable Object */;
5654 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5655 val* var9 /* : nullable Object */;
5656 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5657 val* var10 /* : nullable Object */;
5658 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5659 val* var11 /* : nullable Object */;
5660 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5661 val* var12 /* : Array[Object] */;
5662 val* var_listnode4 /* var listnode4: Array[Object] */;
5663 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
5664 short int var13 /* : Bool */;
5665 int cltype;
5666 int idtype;
5667 val* var_listnode3 /* var listnode3: nullable Object */;
5668 short int var14 /* : Bool */;
5669 int cltype15;
5670 int idtype16;
5671 val* var17 /* : Array[Object] */;
5672 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5673 short int var18 /* : Bool */;
5674 int cltype19;
5675 int idtype20;
5676 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
5677 short int var21 /* : Bool */;
5678 int cltype22;
5679 int idtype23;
5680 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
5681 short int var24 /* : Bool */;
5682 int cltype25;
5683 int idtype26;
5684 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
5685 short int var27 /* : Bool */;
5686 int cltype28;
5687 int idtype29;
5688 val* var30 /* : AForExpr */;
5689 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
5690 long var31 /* : Int */;
5691 long var32 /* : Int */;
5692 var_p = p0;
5693 var = NULL;
5694 var_node_list = var;
5695 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5696 var_nodearraylist11 = var1;
5697 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5698 var_nodearraylist10 = var2;
5699 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5700 var_nodearraylist9 = var3;
5701 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5702 var_nodearraylist8 = var4;
5703 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5704 var_nodearraylist7 = var5;
5705 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5706 var_nodearraylist6 = var6;
5707 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5708 var_nodearraylist5 = var7;
5709 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5710 var_nodearraylist4 = var8;
5711 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5712 var_nodearraylist3 = var9;
5713 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5714 var_nodearraylist2 = var10;
5715 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5716 var_nodearraylist1 = var11;
5717 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
5718 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
5719 var_listnode4 = var12;
5720 var_tkwfornode2 = var_nodearraylist1;
5721 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
5722 cltype = type_nullable_parser_nodes__TKwfor.color;
5723 idtype = type_nullable_parser_nodes__TKwfor.id;
5724 if(var_tkwfornode2 == NULL) {
5725 var13 = 1;
5726 } else {
5727 if(cltype >= var_tkwfornode2->type->table_size) {
5728 var13 = 0;
5729 } else {
5730 var13 = var_tkwfornode2->type->type_table[cltype] == idtype;
5731 }
5732 }
5733 if (!var13) {
5734 fprintf(stderr, "Runtime error: %s", "Assert failed");
5735 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26244);
5736 show_backtrace(1);
5737 }
5738 var_listnode3 = var_nodearraylist3;
5739 /* <var_listnode3:nullable Object> isa Array[Object] */
5740 cltype15 = type_array__Arraykernel__Object.color;
5741 idtype16 = type_array__Arraykernel__Object.id;
5742 if(var_listnode3 == NULL) {
5743 var14 = 0;
5744 } else {
5745 if(cltype15 >= var_listnode3->type->table_size) {
5746 var14 = 0;
5747 } else {
5748 var14 = var_listnode3->type->type_table[cltype15] == idtype16;
5749 }
5750 }
5751 if (!var14) {
5752 fprintf(stderr, "Runtime error: %s", "Assert failed");
5753 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26246);
5754 show_backtrace(1);
5755 }
5756 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction704>*/;
5757 var_listnode4 = var17;
5758 var_pexprnode5 = var_nodearraylist7;
5759 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5760 cltype19 = type_nullable_parser_nodes__AExpr.color;
5761 idtype20 = type_nullable_parser_nodes__AExpr.id;
5762 if(var_pexprnode5 == NULL) {
5763 var18 = 1;
5764 } else {
5765 if(cltype19 >= var_pexprnode5->type->table_size) {
5766 var18 = 0;
5767 } else {
5768 var18 = var_pexprnode5->type->type_table[cltype19] == idtype20;
5769 }
5770 }
5771 if (!var18) {
5772 fprintf(stderr, "Runtime error: %s", "Assert failed");
5773 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26249);
5774 show_backtrace(1);
5775 }
5776 var_tkwdonode6 = var_nodearraylist9;
5777 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
5778 cltype22 = type_nullable_parser_nodes__TKwdo.color;
5779 idtype23 = type_nullable_parser_nodes__TKwdo.id;
5780 if(var_tkwdonode6 == NULL) {
5781 var21 = 1;
5782 } else {
5783 if(cltype22 >= var_tkwdonode6->type->table_size) {
5784 var21 = 0;
5785 } else {
5786 var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23;
5787 }
5788 }
5789 if (!var21) {
5790 fprintf(stderr, "Runtime error: %s", "Assert failed");
5791 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26251);
5792 show_backtrace(1);
5793 }
5794 var_pexprnode7 = var_nodearraylist10;
5795 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
5796 cltype25 = type_nullable_parser_nodes__AExpr.color;
5797 idtype26 = type_nullable_parser_nodes__AExpr.id;
5798 if(var_pexprnode7 == NULL) {
5799 var24 = 1;
5800 } else {
5801 if(cltype25 >= var_pexprnode7->type->table_size) {
5802 var24 = 0;
5803 } else {
5804 var24 = var_pexprnode7->type->type_table[cltype25] == idtype26;
5805 }
5806 }
5807 if (!var24) {
5808 fprintf(stderr, "Runtime error: %s", "Assert failed");
5809 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26253);
5810 show_backtrace(1);
5811 }
5812 var_plabelnode8 = var_nodearraylist11;
5813 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
5814 cltype28 = type_nullable_parser_nodes__ALabel.color;
5815 idtype29 = type_nullable_parser_nodes__ALabel.id;
5816 if(var_plabelnode8 == NULL) {
5817 var27 = 1;
5818 } else {
5819 if(cltype28 >= var_plabelnode8->type->table_size) {
5820 var27 = 0;
5821 } else {
5822 var27 = var_plabelnode8->type->type_table[cltype28] == idtype29;
5823 }
5824 }
5825 if (!var27) {
5826 fprintf(stderr, "Runtime error: %s", "Assert failed");
5827 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26255);
5828 show_backtrace(1);
5829 }
5830 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
5831 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on <var30:AForExpr>*/;
5832 var_pexprnode1 = var30;
5833 var_node_list = var_pexprnode1;
5834 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction704> */
5835 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
5836 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
5837 RET_LABEL:;
5838 }
5839 /* method parser#ReduceAction704#action for (self: Object, Parser) */
5840 void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) {
5841 parser__ReduceAction704__action(self, p0);
5842 RET_LABEL:;
5843 }
5844 /* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */
5845 void parser__ReduceAction705__action(val* self, val* p0) {
5846 val* var_p /* var p: Parser */;
5847 val* var /* : null */;
5848 val* var_node_list /* var node_list: nullable Object */;
5849 val* var1 /* : nullable Object */;
5850 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
5851 val* var2 /* : nullable Object */;
5852 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
5853 val* var3 /* : nullable Object */;
5854 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
5855 val* var4 /* : nullable Object */;
5856 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5857 val* var5 /* : nullable Object */;
5858 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5859 val* var6 /* : nullable Object */;
5860 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5861 val* var7 /* : nullable Object */;
5862 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5863 val* var8 /* : nullable Object */;
5864 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5865 val* var9 /* : nullable Object */;
5866 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5867 val* var10 /* : nullable Object */;
5868 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5869 val* var11 /* : nullable Object */;
5870 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5871 val* var12 /* : nullable Object */;
5872 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5873 val* var13 /* : nullable Object */;
5874 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5875 val* var14 /* : nullable Object */;
5876 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5877 val* var15 /* : Array[Object] */;
5878 val* var_listnode4 /* var listnode4: Array[Object] */;
5879 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
5880 short int var16 /* : Bool */;
5881 int cltype;
5882 int idtype;
5883 val* var_listnode3 /* var listnode3: nullable Object */;
5884 short int var17 /* : Bool */;
5885 int cltype18;
5886 int idtype19;
5887 val* var20 /* : Array[Object] */;
5888 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5889 short int var21 /* : Bool */;
5890 int cltype22;
5891 int idtype23;
5892 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
5893 short int var24 /* : Bool */;
5894 int cltype25;
5895 int idtype26;
5896 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
5897 short int var27 /* : Bool */;
5898 int cltype28;
5899 int idtype29;
5900 val* var30 /* : AForExpr */;
5901 val* var31 /* : null */;
5902 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
5903 long var32 /* : Int */;
5904 long var33 /* : Int */;
5905 var_p = p0;
5906 var = NULL;
5907 var_node_list = var;
5908 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5909 var_nodearraylist14 = var1;
5910 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5911 var_nodearraylist13 = var2;
5912 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5913 var_nodearraylist12 = var3;
5914 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5915 var_nodearraylist11 = var4;
5916 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5917 var_nodearraylist10 = var5;
5918 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5919 var_nodearraylist9 = var6;
5920 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5921 var_nodearraylist8 = var7;
5922 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5923 var_nodearraylist7 = var8;
5924 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5925 var_nodearraylist6 = var9;
5926 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5927 var_nodearraylist5 = var10;
5928 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5929 var_nodearraylist4 = var11;
5930 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5931 var_nodearraylist3 = var12;
5932 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5933 var_nodearraylist2 = var13;
5934 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5935 var_nodearraylist1 = var14;
5936 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
5937 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
5938 var_listnode4 = var15;
5939 var_tkwfornode2 = var_nodearraylist1;
5940 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
5941 cltype = type_nullable_parser_nodes__TKwfor.color;
5942 idtype = type_nullable_parser_nodes__TKwfor.id;
5943 if(var_tkwfornode2 == NULL) {
5944 var16 = 1;
5945 } else {
5946 if(cltype >= var_tkwfornode2->type->table_size) {
5947 var16 = 0;
5948 } else {
5949 var16 = var_tkwfornode2->type->type_table[cltype] == idtype;
5950 }
5951 }
5952 if (!var16) {
5953 fprintf(stderr, "Runtime error: %s", "Assert failed");
5954 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26289);
5955 show_backtrace(1);
5956 }
5957 var_listnode3 = var_nodearraylist5;
5958 /* <var_listnode3:nullable Object> isa Array[Object] */
5959 cltype18 = type_array__Arraykernel__Object.color;
5960 idtype19 = type_array__Arraykernel__Object.id;
5961 if(var_listnode3 == NULL) {
5962 var17 = 0;
5963 } else {
5964 if(cltype18 >= var_listnode3->type->table_size) {
5965 var17 = 0;
5966 } else {
5967 var17 = var_listnode3->type->type_table[cltype18] == idtype19;
5968 }
5969 }
5970 if (!var17) {
5971 fprintf(stderr, "Runtime error: %s", "Assert failed");
5972 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26291);
5973 show_backtrace(1);
5974 }
5975 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction705>*/;
5976 var_listnode4 = var20;
5977 var_pexprnode5 = var_nodearraylist11;
5978 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5979 cltype22 = type_nullable_parser_nodes__AExpr.color;
5980 idtype23 = type_nullable_parser_nodes__AExpr.id;
5981 if(var_pexprnode5 == NULL) {
5982 var21 = 1;
5983 } else {
5984 if(cltype22 >= var_pexprnode5->type->table_size) {
5985 var21 = 0;
5986 } else {
5987 var21 = var_pexprnode5->type->type_table[cltype22] == idtype23;
5988 }
5989 }
5990 if (!var21) {
5991 fprintf(stderr, "Runtime error: %s", "Assert failed");
5992 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26294);
5993 show_backtrace(1);
5994 }
5995 var_tkwdonode6 = var_nodearraylist13;
5996 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
5997 cltype25 = type_nullable_parser_nodes__TKwdo.color;
5998 idtype26 = type_nullable_parser_nodes__TKwdo.id;
5999 if(var_tkwdonode6 == NULL) {
6000 var24 = 1;
6001 } else {
6002 if(cltype25 >= var_tkwdonode6->type->table_size) {
6003 var24 = 0;
6004 } else {
6005 var24 = var_tkwdonode6->type->type_table[cltype25] == idtype26;
6006 }
6007 }
6008 if (!var24) {
6009 fprintf(stderr, "Runtime error: %s", "Assert failed");
6010 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26296);
6011 show_backtrace(1);
6012 }
6013 var_pexprnode7 = var_nodearraylist14;
6014 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
6015 cltype28 = type_nullable_parser_nodes__AExpr.color;
6016 idtype29 = type_nullable_parser_nodes__AExpr.id;
6017 if(var_pexprnode7 == NULL) {
6018 var27 = 1;
6019 } else {
6020 if(cltype28 >= var_pexprnode7->type->table_size) {
6021 var27 = 0;
6022 } else {
6023 var27 = var_pexprnode7->type->type_table[cltype28] == idtype29;
6024 }
6025 }
6026 if (!var27) {
6027 fprintf(stderr, "Runtime error: %s", "Assert failed");
6028 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26298);
6029 show_backtrace(1);
6030 }
6031 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
6032 var31 = NULL;
6033 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var31) /* init_aforexpr on <var30:AForExpr>*/;
6034 var_pexprnode1 = var30;
6035 var_node_list = var_pexprnode1;
6036 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction705> */
6037 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
6038 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
6039 RET_LABEL:;
6040 }
6041 /* method parser#ReduceAction705#action for (self: Object, Parser) */
6042 void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) {
6043 parser__ReduceAction705__action(self, p0);
6044 RET_LABEL:;
6045 }
6046 /* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */
6047 void parser__ReduceAction706__action(val* self, val* p0) {
6048 val* var_p /* var p: Parser */;
6049 val* var /* : null */;
6050 val* var_node_list /* var node_list: nullable Object */;
6051 val* var1 /* : nullable Object */;
6052 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
6053 val* var2 /* : nullable Object */;
6054 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6055 val* var3 /* : nullable Object */;
6056 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6057 val* var4 /* : nullable Object */;
6058 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6059 val* var5 /* : nullable Object */;
6060 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6061 val* var6 /* : nullable Object */;
6062 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6063 val* var7 /* : nullable Object */;
6064 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6065 val* var8 /* : nullable Object */;
6066 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6067 val* var9 /* : nullable Object */;
6068 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6069 val* var10 /* : nullable Object */;
6070 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6071 val* var11 /* : Array[Object] */;
6072 val* var_listnode4 /* var listnode4: Array[Object] */;
6073 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
6074 short int var12 /* : Bool */;
6075 int cltype;
6076 int idtype;
6077 val* var_listnode3 /* var listnode3: nullable Object */;
6078 short int var13 /* : Bool */;
6079 int cltype14;
6080 int idtype15;
6081 val* var16 /* : Array[Object] */;
6082 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6083 short int var17 /* : Bool */;
6084 int cltype18;
6085 int idtype19;
6086 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
6087 short int var20 /* : Bool */;
6088 int cltype21;
6089 int idtype22;
6090 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
6091 short int var23 /* : Bool */;
6092 int cltype24;
6093 int idtype25;
6094 val* var26 /* : AForExpr */;
6095 val* var27 /* : null */;
6096 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
6097 long var28 /* : Int */;
6098 long var29 /* : Int */;
6099 var_p = p0;
6100 var = NULL;
6101 var_node_list = var;
6102 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6103 var_nodearraylist10 = var1;
6104 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6105 var_nodearraylist9 = var2;
6106 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6107 var_nodearraylist8 = var3;
6108 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6109 var_nodearraylist7 = var4;
6110 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6111 var_nodearraylist6 = var5;
6112 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6113 var_nodearraylist5 = var6;
6114 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6115 var_nodearraylist4 = var7;
6116 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6117 var_nodearraylist3 = var8;
6118 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6119 var_nodearraylist2 = var9;
6120 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6121 var_nodearraylist1 = var10;
6122 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
6123 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
6124 var_listnode4 = var11;
6125 var_tkwfornode2 = var_nodearraylist1;
6126 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
6127 cltype = type_nullable_parser_nodes__TKwfor.color;
6128 idtype = type_nullable_parser_nodes__TKwfor.id;
6129 if(var_tkwfornode2 == NULL) {
6130 var12 = 1;
6131 } else {
6132 if(cltype >= var_tkwfornode2->type->table_size) {
6133 var12 = 0;
6134 } else {
6135 var12 = var_tkwfornode2->type->type_table[cltype] == idtype;
6136 }
6137 }
6138 if (!var12) {
6139 fprintf(stderr, "Runtime error: %s", "Assert failed");
6140 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26328);
6141 show_backtrace(1);
6142 }
6143 var_listnode3 = var_nodearraylist3;
6144 /* <var_listnode3:nullable Object> isa Array[Object] */
6145 cltype14 = type_array__Arraykernel__Object.color;
6146 idtype15 = type_array__Arraykernel__Object.id;
6147 if(var_listnode3 == NULL) {
6148 var13 = 0;
6149 } else {
6150 if(cltype14 >= var_listnode3->type->table_size) {
6151 var13 = 0;
6152 } else {
6153 var13 = var_listnode3->type->type_table[cltype14] == idtype15;
6154 }
6155 }
6156 if (!var13) {
6157 fprintf(stderr, "Runtime error: %s", "Assert failed");
6158 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26330);
6159 show_backtrace(1);
6160 }
6161 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction706>*/;
6162 var_listnode4 = var16;
6163 var_pexprnode5 = var_nodearraylist7;
6164 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6165 cltype18 = type_nullable_parser_nodes__AExpr.color;
6166 idtype19 = type_nullable_parser_nodes__AExpr.id;
6167 if(var_pexprnode5 == NULL) {
6168 var17 = 1;
6169 } else {
6170 if(cltype18 >= var_pexprnode5->type->table_size) {
6171 var17 = 0;
6172 } else {
6173 var17 = var_pexprnode5->type->type_table[cltype18] == idtype19;
6174 }
6175 }
6176 if (!var17) {
6177 fprintf(stderr, "Runtime error: %s", "Assert failed");
6178 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26333);
6179 show_backtrace(1);
6180 }
6181 var_tkwdonode6 = var_nodearraylist9;
6182 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
6183 cltype21 = type_nullable_parser_nodes__TKwdo.color;
6184 idtype22 = type_nullable_parser_nodes__TKwdo.id;
6185 if(var_tkwdonode6 == NULL) {
6186 var20 = 1;
6187 } else {
6188 if(cltype21 >= var_tkwdonode6->type->table_size) {
6189 var20 = 0;
6190 } else {
6191 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
6192 }
6193 }
6194 if (!var20) {
6195 fprintf(stderr, "Runtime error: %s", "Assert failed");
6196 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26335);
6197 show_backtrace(1);
6198 }
6199 var_pexprnode7 = var_nodearraylist10;
6200 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
6201 cltype24 = type_nullable_parser_nodes__AExpr.color;
6202 idtype25 = type_nullable_parser_nodes__AExpr.id;
6203 if(var_pexprnode7 == NULL) {
6204 var23 = 1;
6205 } else {
6206 if(cltype24 >= var_pexprnode7->type->table_size) {
6207 var23 = 0;
6208 } else {
6209 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
6210 }
6211 }
6212 if (!var23) {
6213 fprintf(stderr, "Runtime error: %s", "Assert failed");
6214 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26337);
6215 show_backtrace(1);
6216 }
6217 var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
6218 var27 = NULL;
6219 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var26, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aforexpr on <var26:AForExpr>*/;
6220 var_pexprnode1 = var26;
6221 var_node_list = var_pexprnode1;
6222 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction706> */
6223 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
6224 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
6225 RET_LABEL:;
6226 }
6227 /* method parser#ReduceAction706#action for (self: Object, Parser) */
6228 void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) {
6229 parser__ReduceAction706__action(self, p0);
6230 RET_LABEL:;
6231 }
6232 /* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */
6233 void parser__ReduceAction707__action(val* self, val* p0) {
6234 val* var_p /* var p: Parser */;
6235 val* var /* : null */;
6236 val* var_node_list /* var node_list: nullable Object */;
6237 val* var1 /* : nullable Object */;
6238 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6239 val* var2 /* : nullable Object */;
6240 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6241 val* var3 /* : nullable Object */;
6242 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6243 val* var4 /* : nullable Object */;
6244 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6245 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
6246 short int var5 /* : Bool */;
6247 int cltype;
6248 int idtype;
6249 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6250 short int var6 /* : Bool */;
6251 int cltype7;
6252 int idtype8;
6253 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6254 short int var9 /* : Bool */;
6255 int cltype10;
6256 int idtype11;
6257 val* var12 /* : AAssertExpr */;
6258 val* var13 /* : null */;
6259 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
6260 long var14 /* : Int */;
6261 long var15 /* : Int */;
6262 var_p = p0;
6263 var = NULL;
6264 var_node_list = var;
6265 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6266 var_nodearraylist4 = var1;
6267 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6268 var_nodearraylist3 = var2;
6269 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6270 var_nodearraylist2 = var3;
6271 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6272 var_nodearraylist1 = var4;
6273 var_tkwassertnode2 = var_nodearraylist1;
6274 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
6275 cltype = type_nullable_parser_nodes__TKwassert.color;
6276 idtype = type_nullable_parser_nodes__TKwassert.id;
6277 if(var_tkwassertnode2 == NULL) {
6278 var5 = 1;
6279 } else {
6280 if(cltype >= var_tkwassertnode2->type->table_size) {
6281 var5 = 0;
6282 } else {
6283 var5 = var_tkwassertnode2->type->type_table[cltype] == idtype;
6284 }
6285 }
6286 if (!var5) {
6287 fprintf(stderr, "Runtime error: %s", "Assert failed");
6288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26360);
6289 show_backtrace(1);
6290 }
6291 var_pexprnode4 = var_nodearraylist2;
6292 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6293 cltype7 = type_nullable_parser_nodes__AExpr.color;
6294 idtype8 = type_nullable_parser_nodes__AExpr.id;
6295 if(var_pexprnode4 == NULL) {
6296 var6 = 1;
6297 } else {
6298 if(cltype7 >= var_pexprnode4->type->table_size) {
6299 var6 = 0;
6300 } else {
6301 var6 = var_pexprnode4->type->type_table[cltype7] == idtype8;
6302 }
6303 }
6304 if (!var6) {
6305 fprintf(stderr, "Runtime error: %s", "Assert failed");
6306 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26362);
6307 show_backtrace(1);
6308 }
6309 var_pexprnode5 = var_nodearraylist4;
6310 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6311 cltype10 = type_nullable_parser_nodes__AExpr.color;
6312 idtype11 = type_nullable_parser_nodes__AExpr.id;
6313 if(var_pexprnode5 == NULL) {
6314 var9 = 1;
6315 } else {
6316 if(cltype10 >= var_pexprnode5->type->table_size) {
6317 var9 = 0;
6318 } else {
6319 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
6320 }
6321 }
6322 if (!var9) {
6323 fprintf(stderr, "Runtime error: %s", "Assert failed");
6324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26364);
6325 show_backtrace(1);
6326 }
6327 var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
6328 var13 = NULL;
6329 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var12, var_tkwassertnode2, var13, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on <var12:AAssertExpr>*/;
6330 var_pexprnode1 = var12;
6331 var_node_list = var_pexprnode1;
6332 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction707> */
6333 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
6334 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
6335 RET_LABEL:;
6336 }
6337 /* method parser#ReduceAction707#action for (self: Object, Parser) */
6338 void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) {
6339 parser__ReduceAction707__action(self, p0);
6340 RET_LABEL:;
6341 }
6342 /* method parser#ReduceAction708#action for (self: ReduceAction708, Parser) */
6343 void parser__ReduceAction708__action(val* self, val* p0) {
6344 val* var_p /* var p: Parser */;
6345 val* var /* : null */;
6346 val* var_node_list /* var node_list: nullable Object */;
6347 val* var1 /* : nullable Object */;
6348 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6349 val* var2 /* : nullable Object */;
6350 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6351 val* var3 /* : nullable Object */;
6352 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6353 val* var4 /* : nullable Object */;
6354 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6355 val* var5 /* : nullable Object */;
6356 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6357 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
6358 short int var6 /* : Bool */;
6359 int cltype;
6360 int idtype;
6361 val* var_tidnode3 /* var tidnode3: nullable Object */;
6362 short int var7 /* : Bool */;
6363 int cltype8;
6364 int idtype9;
6365 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6366 short int var10 /* : Bool */;
6367 int cltype11;
6368 int idtype12;
6369 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6370 short int var13 /* : Bool */;
6371 int cltype14;
6372 int idtype15;
6373 val* var16 /* : AAssertExpr */;
6374 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
6375 long var17 /* : Int */;
6376 long var18 /* : Int */;
6377 var_p = p0;
6378 var = NULL;
6379 var_node_list = var;
6380 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6381 var_nodearraylist5 = var1;
6382 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6383 var_nodearraylist4 = var2;
6384 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6385 var_nodearraylist3 = var3;
6386 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6387 var_nodearraylist2 = var4;
6388 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6389 var_nodearraylist1 = var5;
6390 var_tkwassertnode2 = var_nodearraylist1;
6391 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
6392 cltype = type_nullable_parser_nodes__TKwassert.color;
6393 idtype = type_nullable_parser_nodes__TKwassert.id;
6394 if(var_tkwassertnode2 == NULL) {
6395 var6 = 1;
6396 } else {
6397 if(cltype >= var_tkwassertnode2->type->table_size) {
6398 var6 = 0;
6399 } else {
6400 var6 = var_tkwassertnode2->type->type_table[cltype] == idtype;
6401 }
6402 }
6403 if (!var6) {
6404 fprintf(stderr, "Runtime error: %s", "Assert failed");
6405 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26386);
6406 show_backtrace(1);
6407 }
6408 var_tidnode3 = var_nodearraylist2;
6409 /* <var_tidnode3:nullable Object> isa nullable TId */
6410 cltype8 = type_nullable_parser_nodes__TId.color;
6411 idtype9 = type_nullable_parser_nodes__TId.id;
6412 if(var_tidnode3 == NULL) {
6413 var7 = 1;
6414 } else {
6415 if(cltype8 >= var_tidnode3->type->table_size) {
6416 var7 = 0;
6417 } else {
6418 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
6419 }
6420 }
6421 if (!var7) {
6422 fprintf(stderr, "Runtime error: %s", "Assert failed");
6423 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26388);
6424 show_backtrace(1);
6425 }
6426 var_pexprnode4 = var_nodearraylist3;
6427 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6428 cltype11 = type_nullable_parser_nodes__AExpr.color;
6429 idtype12 = type_nullable_parser_nodes__AExpr.id;
6430 if(var_pexprnode4 == NULL) {
6431 var10 = 1;
6432 } else {
6433 if(cltype11 >= var_pexprnode4->type->table_size) {
6434 var10 = 0;
6435 } else {
6436 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
6437 }
6438 }
6439 if (!var10) {
6440 fprintf(stderr, "Runtime error: %s", "Assert failed");
6441 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26390);
6442 show_backtrace(1);
6443 }
6444 var_pexprnode5 = var_nodearraylist5;
6445 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6446 cltype14 = type_nullable_parser_nodes__AExpr.color;
6447 idtype15 = type_nullable_parser_nodes__AExpr.id;
6448 if(var_pexprnode5 == NULL) {
6449 var13 = 1;
6450 } else {
6451 if(cltype14 >= var_pexprnode5->type->table_size) {
6452 var13 = 0;
6453 } else {
6454 var13 = var_pexprnode5->type->type_table[cltype14] == idtype15;
6455 }
6456 }
6457 if (!var13) {
6458 fprintf(stderr, "Runtime error: %s", "Assert failed");
6459 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26392);
6460 show_backtrace(1);
6461 }
6462 var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
6463 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var16, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on <var16:AAssertExpr>*/;
6464 var_pexprnode1 = var16;
6465 var_node_list = var_pexprnode1;
6466 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction708> */
6467 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
6468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
6469 RET_LABEL:;
6470 }
6471 /* method parser#ReduceAction708#action for (self: Object, Parser) */
6472 void VIRTUAL_parser__ReduceAction708__action(val* self, val* p0) {
6473 parser__ReduceAction708__action(self, p0);
6474 RET_LABEL:;
6475 }
6476 /* method parser#ReduceAction709#action for (self: ReduceAction709, Parser) */
6477 void parser__ReduceAction709__action(val* self, val* p0) {
6478 val* var_p /* var p: Parser */;
6479 val* var /* : null */;
6480 val* var_node_list /* var node_list: nullable Object */;
6481 val* var1 /* : nullable Object */;
6482 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6483 val* var2 /* : nullable Object */;
6484 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6485 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
6486 short int var3 /* : Bool */;
6487 int cltype;
6488 int idtype;
6489 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6490 short int var4 /* : Bool */;
6491 int cltype5;
6492 int idtype6;
6493 val* var7 /* : AAssertExpr */;
6494 val* var8 /* : null */;
6495 val* var9 /* : null */;
6496 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
6497 long var10 /* : Int */;
6498 long var11 /* : Int */;
6499 var_p = p0;
6500 var = NULL;
6501 var_node_list = var;
6502 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6503 var_nodearraylist2 = var1;
6504 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6505 var_nodearraylist1 = var2;
6506 var_tkwassertnode2 = var_nodearraylist1;
6507 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
6508 cltype = type_nullable_parser_nodes__TKwassert.color;
6509 idtype = type_nullable_parser_nodes__TKwassert.id;
6510 if(var_tkwassertnode2 == NULL) {
6511 var3 = 1;
6512 } else {
6513 if(cltype >= var_tkwassertnode2->type->table_size) {
6514 var3 = 0;
6515 } else {
6516 var3 = var_tkwassertnode2->type->type_table[cltype] == idtype;
6517 }
6518 }
6519 if (!var3) {
6520 fprintf(stderr, "Runtime error: %s", "Assert failed");
6521 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26411);
6522 show_backtrace(1);
6523 }
6524 var_pexprnode4 = var_nodearraylist2;
6525 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6526 cltype5 = type_nullable_parser_nodes__AExpr.color;
6527 idtype6 = type_nullable_parser_nodes__AExpr.id;
6528 if(var_pexprnode4 == NULL) {
6529 var4 = 1;
6530 } else {
6531 if(cltype5 >= var_pexprnode4->type->table_size) {
6532 var4 = 0;
6533 } else {
6534 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
6535 }
6536 }
6537 if (!var4) {
6538 fprintf(stderr, "Runtime error: %s", "Assert failed");
6539 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26413);
6540 show_backtrace(1);
6541 }
6542 var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
6543 var8 = NULL;
6544 var9 = NULL;
6545 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var7, var_tkwassertnode2, var8, var_pexprnode4, var9) /* init_aassertexpr on <var7:AAssertExpr>*/;
6546 var_pexprnode1 = var7;
6547 var_node_list = var_pexprnode1;
6548 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction709> */
6549 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6550 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6551 RET_LABEL:;
6552 }
6553 /* method parser#ReduceAction709#action for (self: Object, Parser) */
6554 void VIRTUAL_parser__ReduceAction709__action(val* self, val* p0) {
6555 parser__ReduceAction709__action(self, p0);
6556 RET_LABEL:;
6557 }
6558 /* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */
6559 void parser__ReduceAction710__action(val* self, val* p0) {
6560 val* var_p /* var p: Parser */;
6561 val* var /* : null */;
6562 val* var_node_list /* var node_list: nullable Object */;
6563 val* var1 /* : nullable Object */;
6564 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6565 val* var2 /* : nullable Object */;
6566 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6567 val* var3 /* : nullable Object */;
6568 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6569 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
6570 short int var4 /* : Bool */;
6571 int cltype;
6572 int idtype;
6573 val* var_tidnode3 /* var tidnode3: nullable Object */;
6574 short int var5 /* : Bool */;
6575 int cltype6;
6576 int idtype7;
6577 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6578 short int var8 /* : Bool */;
6579 int cltype9;
6580 int idtype10;
6581 val* var11 /* : AAssertExpr */;
6582 val* var12 /* : null */;
6583 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
6584 long var13 /* : Int */;
6585 long var14 /* : Int */;
6586 var_p = p0;
6587 var = NULL;
6588 var_node_list = var;
6589 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6590 var_nodearraylist3 = var1;
6591 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6592 var_nodearraylist2 = var2;
6593 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6594 var_nodearraylist1 = var3;
6595 var_tkwassertnode2 = var_nodearraylist1;
6596 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
6597 cltype = type_nullable_parser_nodes__TKwassert.color;
6598 idtype = type_nullable_parser_nodes__TKwassert.id;
6599 if(var_tkwassertnode2 == NULL) {
6600 var4 = 1;
6601 } else {
6602 if(cltype >= var_tkwassertnode2->type->table_size) {
6603 var4 = 0;
6604 } else {
6605 var4 = var_tkwassertnode2->type->type_table[cltype] == idtype;
6606 }
6607 }
6608 if (!var4) {
6609 fprintf(stderr, "Runtime error: %s", "Assert failed");
6610 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26433);
6611 show_backtrace(1);
6612 }
6613 var_tidnode3 = var_nodearraylist2;
6614 /* <var_tidnode3:nullable Object> isa nullable TId */
6615 cltype6 = type_nullable_parser_nodes__TId.color;
6616 idtype7 = type_nullable_parser_nodes__TId.id;
6617 if(var_tidnode3 == NULL) {
6618 var5 = 1;
6619 } else {
6620 if(cltype6 >= var_tidnode3->type->table_size) {
6621 var5 = 0;
6622 } else {
6623 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
6624 }
6625 }
6626 if (!var5) {
6627 fprintf(stderr, "Runtime error: %s", "Assert failed");
6628 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26435);
6629 show_backtrace(1);
6630 }
6631 var_pexprnode4 = var_nodearraylist3;
6632 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6633 cltype9 = type_nullable_parser_nodes__AExpr.color;
6634 idtype10 = type_nullable_parser_nodes__AExpr.id;
6635 if(var_pexprnode4 == NULL) {
6636 var8 = 1;
6637 } else {
6638 if(cltype9 >= var_pexprnode4->type->table_size) {
6639 var8 = 0;
6640 } else {
6641 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
6642 }
6643 }
6644 if (!var8) {
6645 fprintf(stderr, "Runtime error: %s", "Assert failed");
6646 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26437);
6647 show_backtrace(1);
6648 }
6649 var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
6650 var12 = NULL;
6651 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var11, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var12) /* init_aassertexpr on <var11:AAssertExpr>*/;
6652 var_pexprnode1 = var11;
6653 var_node_list = var_pexprnode1;
6654 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction710> */
6655 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6656 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6657 RET_LABEL:;
6658 }
6659 /* method parser#ReduceAction710#action for (self: Object, Parser) */
6660 void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) {
6661 parser__ReduceAction710__action(self, p0);
6662 RET_LABEL:;
6663 }
6664 /* method parser#ReduceAction711#action for (self: ReduceAction711, Parser) */
6665 void parser__ReduceAction711__action(val* self, val* p0) {
6666 val* var_p /* var p: Parser */;
6667 val* var /* : null */;
6668 val* var_node_list /* var node_list: nullable Object */;
6669 val* var1 /* : nullable Object */;
6670 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6671 val* var2 /* : nullable Object */;
6672 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6673 val* var_tidnode1 /* var tidnode1: nullable Object */;
6674 long var3 /* : Int */;
6675 long var4 /* : Int */;
6676 var_p = p0;
6677 var = NULL;
6678 var_node_list = var;
6679 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6680 var_nodearraylist2 = var1;
6681 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6682 var_nodearraylist1 = var2;
6683 var_tidnode1 = var_nodearraylist1;
6684 var_node_list = var_tidnode1;
6685 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction711> */
6686 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
6687 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
6688 RET_LABEL:;
6689 }
6690 /* method parser#ReduceAction711#action for (self: Object, Parser) */
6691 void VIRTUAL_parser__ReduceAction711__action(val* self, val* p0) {
6692 parser__ReduceAction711__action(self, p0);
6693 RET_LABEL:;
6694 }
6695 /* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */
6696 void parser__ReduceAction714__action(val* self, val* p0) {
6697 val* var_p /* var p: Parser */;
6698 val* var /* : null */;
6699 val* var_node_list /* var node_list: nullable Object */;
6700 val* var1 /* : nullable Object */;
6701 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
6702 val* var2 /* : nullable Object */;
6703 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
6704 val* var3 /* : nullable Object */;
6705 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6706 val* var4 /* : nullable Object */;
6707 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6708 val* var5 /* : nullable Object */;
6709 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6710 val* var6 /* : nullable Object */;
6711 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6712 val* var7 /* : nullable Object */;
6713 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6714 val* var8 /* : nullable Object */;
6715 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6716 val* var9 /* : nullable Object */;
6717 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6718 val* var10 /* : nullable Object */;
6719 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6720 val* var11 /* : nullable Object */;
6721 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6722 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6723 short int var12 /* : Bool */;
6724 int cltype;
6725 int idtype;
6726 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6727 short int var13 /* : Bool */;
6728 int cltype14;
6729 int idtype15;
6730 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
6731 short int var16 /* : Bool */;
6732 int cltype17;
6733 int idtype18;
6734 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6735 short int var19 /* : Bool */;
6736 int cltype20;
6737 int idtype21;
6738 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
6739 short int var22 /* : Bool */;
6740 int cltype23;
6741 int idtype24;
6742 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
6743 short int var25 /* : Bool */;
6744 int cltype26;
6745 int idtype27;
6746 val* var28 /* : AIfexprExpr */;
6747 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
6748 long var29 /* : Int */;
6749 long var30 /* : Int */;
6750 var_p = p0;
6751 var = NULL;
6752 var_node_list = var;
6753 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6754 var_nodearraylist11 = var1;
6755 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6756 var_nodearraylist10 = var2;
6757 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6758 var_nodearraylist9 = var3;
6759 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6760 var_nodearraylist8 = var4;
6761 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6762 var_nodearraylist7 = var5;
6763 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6764 var_nodearraylist6 = var6;
6765 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6766 var_nodearraylist5 = var7;
6767 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6768 var_nodearraylist4 = var8;
6769 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6770 var_nodearraylist3 = var9;
6771 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6772 var_nodearraylist2 = var10;
6773 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6774 var_nodearraylist1 = var11;
6775 var_tkwifnode2 = var_nodearraylist1;
6776 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6777 cltype = type_nullable_parser_nodes__TKwif.color;
6778 idtype = type_nullable_parser_nodes__TKwif.id;
6779 if(var_tkwifnode2 == NULL) {
6780 var12 = 1;
6781 } else {
6782 if(cltype >= var_tkwifnode2->type->table_size) {
6783 var12 = 0;
6784 } else {
6785 var12 = var_tkwifnode2->type->type_table[cltype] == idtype;
6786 }
6787 }
6788 if (!var12) {
6789 fprintf(stderr, "Runtime error: %s", "Assert failed");
6790 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26477);
6791 show_backtrace(1);
6792 }
6793 var_pexprnode3 = var_nodearraylist3;
6794 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6795 cltype14 = type_nullable_parser_nodes__AExpr.color;
6796 idtype15 = type_nullable_parser_nodes__AExpr.id;
6797 if(var_pexprnode3 == NULL) {
6798 var13 = 1;
6799 } else {
6800 if(cltype14 >= var_pexprnode3->type->table_size) {
6801 var13 = 0;
6802 } else {
6803 var13 = var_pexprnode3->type->type_table[cltype14] == idtype15;
6804 }
6805 }
6806 if (!var13) {
6807 fprintf(stderr, "Runtime error: %s", "Assert failed");
6808 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26479);
6809 show_backtrace(1);
6810 }
6811 var_tkwthennode4 = var_nodearraylist5;
6812 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
6813 cltype17 = type_nullable_parser_nodes__TKwthen.color;
6814 idtype18 = type_nullable_parser_nodes__TKwthen.id;
6815 if(var_tkwthennode4 == NULL) {
6816 var16 = 1;
6817 } else {
6818 if(cltype17 >= var_tkwthennode4->type->table_size) {
6819 var16 = 0;
6820 } else {
6821 var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18;
6822 }
6823 }
6824 if (!var16) {
6825 fprintf(stderr, "Runtime error: %s", "Assert failed");
6826 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26481);
6827 show_backtrace(1);
6828 }
6829 var_pexprnode5 = var_nodearraylist7;
6830 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6831 cltype20 = type_nullable_parser_nodes__AExpr.color;
6832 idtype21 = type_nullable_parser_nodes__AExpr.id;
6833 if(var_pexprnode5 == NULL) {
6834 var19 = 1;
6835 } else {
6836 if(cltype20 >= var_pexprnode5->type->table_size) {
6837 var19 = 0;
6838 } else {
6839 var19 = var_pexprnode5->type->type_table[cltype20] == idtype21;
6840 }
6841 }
6842 if (!var19) {
6843 fprintf(stderr, "Runtime error: %s", "Assert failed");
6844 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26483);
6845 show_backtrace(1);
6846 }
6847 var_tkwelsenode6 = var_nodearraylist9;
6848 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
6849 cltype23 = type_nullable_parser_nodes__TKwelse.color;
6850 idtype24 = type_nullable_parser_nodes__TKwelse.id;
6851 if(var_tkwelsenode6 == NULL) {
6852 var22 = 1;
6853 } else {
6854 if(cltype23 >= var_tkwelsenode6->type->table_size) {
6855 var22 = 0;
6856 } else {
6857 var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24;
6858 }
6859 }
6860 if (!var22) {
6861 fprintf(stderr, "Runtime error: %s", "Assert failed");
6862 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26485);
6863 show_backtrace(1);
6864 }
6865 var_pexprnode7 = var_nodearraylist11;
6866 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
6867 cltype26 = type_nullable_parser_nodes__AExpr.color;
6868 idtype27 = type_nullable_parser_nodes__AExpr.id;
6869 if(var_pexprnode7 == NULL) {
6870 var25 = 1;
6871 } else {
6872 if(cltype26 >= var_pexprnode7->type->table_size) {
6873 var25 = 0;
6874 } else {
6875 var25 = var_pexprnode7->type->type_table[cltype26] == idtype27;
6876 }
6877 }
6878 if (!var25) {
6879 fprintf(stderr, "Runtime error: %s", "Assert failed");
6880 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26487);
6881 show_backtrace(1);
6882 }
6883 var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr);
6884 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AIfexprExpr__init_aifexprexpr]))(var28, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7) /* init_aifexprexpr on <var28:AIfexprExpr>*/;
6885 var_pexprnode1 = var28;
6886 var_node_list = var_pexprnode1;
6887 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction714> */
6888 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
6889 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
6890 RET_LABEL:;
6891 }
6892 /* method parser#ReduceAction714#action for (self: Object, Parser) */
6893 void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) {
6894 parser__ReduceAction714__action(self, p0);
6895 RET_LABEL:;
6896 }
6897 /* method parser#ReduceAction716#action for (self: ReduceAction716, Parser) */
6898 void parser__ReduceAction716__action(val* self, val* p0) {
6899 val* var_p /* var p: Parser */;
6900 val* var /* : null */;
6901 val* var_node_list /* var node_list: nullable Object */;
6902 val* var1 /* : nullable Object */;
6903 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6904 val* var2 /* : nullable Object */;
6905 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6906 val* var3 /* : nullable Object */;
6907 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6908 val* var4 /* : nullable Object */;
6909 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6910 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6911 short int var5 /* : Bool */;
6912 int cltype;
6913 int idtype;
6914 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6915 short int var6 /* : Bool */;
6916 int cltype7;
6917 int idtype8;
6918 val* var9 /* : AOrExpr */;
6919 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
6920 long var10 /* : Int */;
6921 long var11 /* : Int */;
6922 var_p = p0;
6923 var = NULL;
6924 var_node_list = var;
6925 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6926 var_nodearraylist4 = var1;
6927 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6928 var_nodearraylist3 = var2;
6929 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6930 var_nodearraylist2 = var3;
6931 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6932 var_nodearraylist1 = var4;
6933 var_pexprnode2 = var_nodearraylist1;
6934 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6935 cltype = type_nullable_parser_nodes__AExpr.color;
6936 idtype = type_nullable_parser_nodes__AExpr.id;
6937 if(var_pexprnode2 == NULL) {
6938 var5 = 1;
6939 } else {
6940 if(cltype >= var_pexprnode2->type->table_size) {
6941 var5 = 0;
6942 } else {
6943 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
6944 }
6945 }
6946 if (!var5) {
6947 fprintf(stderr, "Runtime error: %s", "Assert failed");
6948 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26510);
6949 show_backtrace(1);
6950 }
6951 var_pexprnode3 = var_nodearraylist4;
6952 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6953 cltype7 = type_nullable_parser_nodes__AExpr.color;
6954 idtype8 = type_nullable_parser_nodes__AExpr.id;
6955 if(var_pexprnode3 == NULL) {
6956 var6 = 1;
6957 } else {
6958 if(cltype7 >= var_pexprnode3->type->table_size) {
6959 var6 = 0;
6960 } else {
6961 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
6962 }
6963 }
6964 if (!var6) {
6965 fprintf(stderr, "Runtime error: %s", "Assert failed");
6966 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26512);
6967 show_backtrace(1);
6968 }
6969 var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr);
6970 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AOrExpr__init_aorexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aorexpr on <var9:AOrExpr>*/;
6971 var_pexprnode1 = var9;
6972 var_node_list = var_pexprnode1;
6973 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction716> */
6974 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6975 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6976 RET_LABEL:;
6977 }
6978 /* method parser#ReduceAction716#action for (self: Object, Parser) */
6979 void VIRTUAL_parser__ReduceAction716__action(val* self, val* p0) {
6980 parser__ReduceAction716__action(self, p0);
6981 RET_LABEL:;
6982 }
6983 /* method parser#ReduceAction717#action for (self: ReduceAction717, Parser) */
6984 void parser__ReduceAction717__action(val* self, val* p0) {
6985 val* var_p /* var p: Parser */;
6986 val* var /* : null */;
6987 val* var_node_list /* var node_list: nullable Object */;
6988 val* var1 /* : nullable Object */;
6989 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6990 val* var2 /* : nullable Object */;
6991 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6992 val* var3 /* : nullable Object */;
6993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6994 val* var4 /* : nullable Object */;
6995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6996 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6997 short int var5 /* : Bool */;
6998 int cltype;
6999 int idtype;
7000 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7001 short int var6 /* : Bool */;
7002 int cltype7;
7003 int idtype8;
7004 val* var9 /* : AAndExpr */;
7005 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
7006 long var10 /* : Int */;
7007 long var11 /* : Int */;
7008 var_p = p0;
7009 var = NULL;
7010 var_node_list = var;
7011 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7012 var_nodearraylist4 = var1;
7013 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7014 var_nodearraylist3 = var2;
7015 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7016 var_nodearraylist2 = var3;
7017 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7018 var_nodearraylist1 = var4;
7019 var_pexprnode2 = var_nodearraylist1;
7020 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7021 cltype = type_nullable_parser_nodes__AExpr.color;
7022 idtype = type_nullable_parser_nodes__AExpr.id;
7023 if(var_pexprnode2 == NULL) {
7024 var5 = 1;
7025 } else {
7026 if(cltype >= var_pexprnode2->type->table_size) {
7027 var5 = 0;
7028 } else {
7029 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7030 }
7031 }
7032 if (!var5) {
7033 fprintf(stderr, "Runtime error: %s", "Assert failed");
7034 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26531);
7035 show_backtrace(1);
7036 }
7037 var_pexprnode3 = var_nodearraylist4;
7038 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7039 cltype7 = type_nullable_parser_nodes__AExpr.color;
7040 idtype8 = type_nullable_parser_nodes__AExpr.id;
7041 if(var_pexprnode3 == NULL) {
7042 var6 = 1;
7043 } else {
7044 if(cltype7 >= var_pexprnode3->type->table_size) {
7045 var6 = 0;
7046 } else {
7047 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7048 }
7049 }
7050 if (!var6) {
7051 fprintf(stderr, "Runtime error: %s", "Assert failed");
7052 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26533);
7053 show_backtrace(1);
7054 }
7055 var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr);
7056 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAndExpr__init_aandexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aandexpr on <var9:AAndExpr>*/;
7057 var_pexprnode1 = var9;
7058 var_node_list = var_pexprnode1;
7059 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction717> */
7060 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7061 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7062 RET_LABEL:;
7063 }
7064 /* method parser#ReduceAction717#action for (self: Object, Parser) */
7065 void VIRTUAL_parser__ReduceAction717__action(val* self, val* p0) {
7066 parser__ReduceAction717__action(self, p0);
7067 RET_LABEL:;
7068 }
7069 /* method parser#ReduceAction718#action for (self: ReduceAction718, Parser) */
7070 void parser__ReduceAction718__action(val* self, val* p0) {
7071 val* var_p /* var p: Parser */;
7072 val* var /* : null */;
7073 val* var_node_list /* var node_list: nullable Object */;
7074 val* var1 /* : nullable Object */;
7075 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7076 val* var2 /* : nullable Object */;
7077 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7078 val* var3 /* : nullable Object */;
7079 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7080 val* var4 /* : nullable Object */;
7081 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7082 val* var5 /* : nullable Object */;
7083 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7084 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7085 short int var6 /* : Bool */;
7086 int cltype;
7087 int idtype;
7088 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7089 short int var7 /* : Bool */;
7090 int cltype8;
7091 int idtype9;
7092 val* var10 /* : AOrElseExpr */;
7093 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
7094 long var11 /* : Int */;
7095 long var12 /* : Int */;
7096 var_p = p0;
7097 var = NULL;
7098 var_node_list = var;
7099 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7100 var_nodearraylist5 = var1;
7101 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7102 var_nodearraylist4 = var2;
7103 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7104 var_nodearraylist3 = var3;
7105 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7106 var_nodearraylist2 = var4;
7107 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7108 var_nodearraylist1 = var5;
7109 var_pexprnode2 = var_nodearraylist1;
7110 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7111 cltype = type_nullable_parser_nodes__AExpr.color;
7112 idtype = type_nullable_parser_nodes__AExpr.id;
7113 if(var_pexprnode2 == NULL) {
7114 var6 = 1;
7115 } else {
7116 if(cltype >= var_pexprnode2->type->table_size) {
7117 var6 = 0;
7118 } else {
7119 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
7120 }
7121 }
7122 if (!var6) {
7123 fprintf(stderr, "Runtime error: %s", "Assert failed");
7124 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26553);
7125 show_backtrace(1);
7126 }
7127 var_pexprnode3 = var_nodearraylist5;
7128 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7129 cltype8 = type_nullable_parser_nodes__AExpr.color;
7130 idtype9 = type_nullable_parser_nodes__AExpr.id;
7131 if(var_pexprnode3 == NULL) {
7132 var7 = 1;
7133 } else {
7134 if(cltype8 >= var_pexprnode3->type->table_size) {
7135 var7 = 0;
7136 } else {
7137 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
7138 }
7139 }
7140 if (!var7) {
7141 fprintf(stderr, "Runtime error: %s", "Assert failed");
7142 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26555);
7143 show_backtrace(1);
7144 }
7145 var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr);
7146 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AOrElseExpr__init_aorelseexpr]))(var10, var_pexprnode2, var_pexprnode3) /* init_aorelseexpr on <var10:AOrElseExpr>*/;
7147 var_pexprnode1 = var10;
7148 var_node_list = var_pexprnode1;
7149 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction718> */
7150 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
7151 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
7152 RET_LABEL:;
7153 }
7154 /* method parser#ReduceAction718#action for (self: Object, Parser) */
7155 void VIRTUAL_parser__ReduceAction718__action(val* self, val* p0) {
7156 parser__ReduceAction718__action(self, p0);
7157 RET_LABEL:;
7158 }
7159 /* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */
7160 void parser__ReduceAction719__action(val* self, val* p0) {
7161 val* var_p /* var p: Parser */;
7162 val* var /* : null */;
7163 val* var_node_list /* var node_list: nullable Object */;
7164 val* var1 /* : nullable Object */;
7165 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7166 val* var2 /* : nullable Object */;
7167 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7168 val* var3 /* : nullable Object */;
7169 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7170 val* var4 /* : nullable Object */;
7171 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7172 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7173 short int var5 /* : Bool */;
7174 int cltype;
7175 int idtype;
7176 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7177 short int var6 /* : Bool */;
7178 int cltype7;
7179 int idtype8;
7180 val* var9 /* : AImpliesExpr */;
7181 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
7182 long var10 /* : Int */;
7183 long var11 /* : Int */;
7184 var_p = p0;
7185 var = NULL;
7186 var_node_list = var;
7187 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7188 var_nodearraylist4 = var1;
7189 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7190 var_nodearraylist3 = var2;
7191 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7192 var_nodearraylist2 = var3;
7193 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7194 var_nodearraylist1 = var4;
7195 var_pexprnode2 = var_nodearraylist1;
7196 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7197 cltype = type_nullable_parser_nodes__AExpr.color;
7198 idtype = type_nullable_parser_nodes__AExpr.id;
7199 if(var_pexprnode2 == NULL) {
7200 var5 = 1;
7201 } else {
7202 if(cltype >= var_pexprnode2->type->table_size) {
7203 var5 = 0;
7204 } else {
7205 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7206 }
7207 }
7208 if (!var5) {
7209 fprintf(stderr, "Runtime error: %s", "Assert failed");
7210 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26574);
7211 show_backtrace(1);
7212 }
7213 var_pexprnode3 = var_nodearraylist4;
7214 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7215 cltype7 = type_nullable_parser_nodes__AExpr.color;
7216 idtype8 = type_nullable_parser_nodes__AExpr.id;
7217 if(var_pexprnode3 == NULL) {
7218 var6 = 1;
7219 } else {
7220 if(cltype7 >= var_pexprnode3->type->table_size) {
7221 var6 = 0;
7222 } else {
7223 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7224 }
7225 }
7226 if (!var6) {
7227 fprintf(stderr, "Runtime error: %s", "Assert failed");
7228 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26576);
7229 show_backtrace(1);
7230 }
7231 var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr);
7232 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AImpliesExpr__init_aimpliesexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aimpliesexpr on <var9:AImpliesExpr>*/;
7233 var_pexprnode1 = var9;
7234 var_node_list = var_pexprnode1;
7235 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction719> */
7236 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7237 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7238 RET_LABEL:;
7239 }
7240 /* method parser#ReduceAction719#action for (self: Object, Parser) */
7241 void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) {
7242 parser__ReduceAction719__action(self, p0);
7243 RET_LABEL:;
7244 }
7245 /* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */
7246 void parser__ReduceAction721__action(val* self, val* p0) {
7247 val* var_p /* var p: Parser */;
7248 val* var /* : null */;
7249 val* var_node_list /* var node_list: nullable Object */;
7250 val* var1 /* : nullable Object */;
7251 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7252 val* var2 /* : nullable Object */;
7253 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7254 val* var3 /* : nullable Object */;
7255 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7256 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
7257 short int var4 /* : Bool */;
7258 int cltype;
7259 int idtype;
7260 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7261 short int var5 /* : Bool */;
7262 int cltype6;
7263 int idtype7;
7264 val* var8 /* : ANotExpr */;
7265 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
7266 long var9 /* : Int */;
7267 long var10 /* : Int */;
7268 var_p = p0;
7269 var = NULL;
7270 var_node_list = var;
7271 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7272 var_nodearraylist3 = var1;
7273 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7274 var_nodearraylist2 = var2;
7275 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7276 var_nodearraylist1 = var3;
7277 var_tkwnotnode2 = var_nodearraylist1;
7278 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
7279 cltype = type_nullable_parser_nodes__TKwnot.color;
7280 idtype = type_nullable_parser_nodes__TKwnot.id;
7281 if(var_tkwnotnode2 == NULL) {
7282 var4 = 1;
7283 } else {
7284 if(cltype >= var_tkwnotnode2->type->table_size) {
7285 var4 = 0;
7286 } else {
7287 var4 = var_tkwnotnode2->type->type_table[cltype] == idtype;
7288 }
7289 }
7290 if (!var4) {
7291 fprintf(stderr, "Runtime error: %s", "Assert failed");
7292 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26594);
7293 show_backtrace(1);
7294 }
7295 var_pexprnode3 = var_nodearraylist3;
7296 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7297 cltype6 = type_nullable_parser_nodes__AExpr.color;
7298 idtype7 = type_nullable_parser_nodes__AExpr.id;
7299 if(var_pexprnode3 == NULL) {
7300 var5 = 1;
7301 } else {
7302 if(cltype6 >= var_pexprnode3->type->table_size) {
7303 var5 = 0;
7304 } else {
7305 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
7306 }
7307 }
7308 if (!var5) {
7309 fprintf(stderr, "Runtime error: %s", "Assert failed");
7310 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26596);
7311 show_backtrace(1);
7312 }
7313 var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr);
7314 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ANotExpr__init_anotexpr]))(var8, var_tkwnotnode2, var_pexprnode3) /* init_anotexpr on <var8:ANotExpr>*/;
7315 var_pexprnode1 = var8;
7316 var_node_list = var_pexprnode1;
7317 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction721> */
7318 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7319 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7320 RET_LABEL:;
7321 }
7322 /* method parser#ReduceAction721#action for (self: Object, Parser) */
7323 void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) {
7324 parser__ReduceAction721__action(self, p0);
7325 RET_LABEL:;
7326 }
7327 /* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */
7328 void parser__ReduceAction723__action(val* self, val* p0) {
7329 val* var_p /* var p: Parser */;
7330 val* var /* : null */;
7331 val* var_node_list /* var node_list: nullable Object */;
7332 val* var1 /* : nullable Object */;
7333 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7334 val* var2 /* : nullable Object */;
7335 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7336 val* var3 /* : nullable Object */;
7337 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7338 val* var4 /* : nullable Object */;
7339 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7340 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7341 short int var5 /* : Bool */;
7342 int cltype;
7343 int idtype;
7344 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7345 short int var6 /* : Bool */;
7346 int cltype7;
7347 int idtype8;
7348 val* var9 /* : AEqExpr */;
7349 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
7350 long var10 /* : Int */;
7351 long var11 /* : Int */;
7352 var_p = p0;
7353 var = NULL;
7354 var_node_list = var;
7355 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7356 var_nodearraylist4 = var1;
7357 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7358 var_nodearraylist3 = var2;
7359 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7360 var_nodearraylist2 = var3;
7361 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7362 var_nodearraylist1 = var4;
7363 var_pexprnode2 = var_nodearraylist1;
7364 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7365 cltype = type_nullable_parser_nodes__AExpr.color;
7366 idtype = type_nullable_parser_nodes__AExpr.id;
7367 if(var_pexprnode2 == NULL) {
7368 var5 = 1;
7369 } else {
7370 if(cltype >= var_pexprnode2->type->table_size) {
7371 var5 = 0;
7372 } else {
7373 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7374 }
7375 }
7376 if (!var5) {
7377 fprintf(stderr, "Runtime error: %s", "Assert failed");
7378 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26615);
7379 show_backtrace(1);
7380 }
7381 var_pexprnode3 = var_nodearraylist4;
7382 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7383 cltype7 = type_nullable_parser_nodes__AExpr.color;
7384 idtype8 = type_nullable_parser_nodes__AExpr.id;
7385 if(var_pexprnode3 == NULL) {
7386 var6 = 1;
7387 } else {
7388 if(cltype7 >= var_pexprnode3->type->table_size) {
7389 var6 = 0;
7390 } else {
7391 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7392 }
7393 }
7394 if (!var6) {
7395 fprintf(stderr, "Runtime error: %s", "Assert failed");
7396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26617);
7397 show_backtrace(1);
7398 }
7399 var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr);
7400 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEqExpr__init_aeqexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeqexpr on <var9:AEqExpr>*/;
7401 var_pexprnode1 = var9;
7402 var_node_list = var_pexprnode1;
7403 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction723> */
7404 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7405 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7406 RET_LABEL:;
7407 }
7408 /* method parser#ReduceAction723#action for (self: Object, Parser) */
7409 void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) {
7410 parser__ReduceAction723__action(self, p0);
7411 RET_LABEL:;
7412 }
7413 /* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */
7414 void parser__ReduceAction724__action(val* self, val* p0) {
7415 val* var_p /* var p: Parser */;
7416 val* var /* : null */;
7417 val* var_node_list /* var node_list: nullable Object */;
7418 val* var1 /* : nullable Object */;
7419 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7420 val* var2 /* : nullable Object */;
7421 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7422 val* var3 /* : nullable Object */;
7423 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7424 val* var4 /* : nullable Object */;
7425 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7426 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7427 short int var5 /* : Bool */;
7428 int cltype;
7429 int idtype;
7430 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7431 short int var6 /* : Bool */;
7432 int cltype7;
7433 int idtype8;
7434 val* var9 /* : ANeExpr */;
7435 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
7436 long var10 /* : Int */;
7437 long var11 /* : Int */;
7438 var_p = p0;
7439 var = NULL;
7440 var_node_list = var;
7441 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7442 var_nodearraylist4 = var1;
7443 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7444 var_nodearraylist3 = var2;
7445 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7446 var_nodearraylist2 = var3;
7447 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7448 var_nodearraylist1 = var4;
7449 var_pexprnode2 = var_nodearraylist1;
7450 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7451 cltype = type_nullable_parser_nodes__AExpr.color;
7452 idtype = type_nullable_parser_nodes__AExpr.id;
7453 if(var_pexprnode2 == NULL) {
7454 var5 = 1;
7455 } else {
7456 if(cltype >= var_pexprnode2->type->table_size) {
7457 var5 = 0;
7458 } else {
7459 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7460 }
7461 }
7462 if (!var5) {
7463 fprintf(stderr, "Runtime error: %s", "Assert failed");
7464 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26636);
7465 show_backtrace(1);
7466 }
7467 var_pexprnode3 = var_nodearraylist4;
7468 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7469 cltype7 = type_nullable_parser_nodes__AExpr.color;
7470 idtype8 = type_nullable_parser_nodes__AExpr.id;
7471 if(var_pexprnode3 == NULL) {
7472 var6 = 1;
7473 } else {
7474 if(cltype7 >= var_pexprnode3->type->table_size) {
7475 var6 = 0;
7476 } else {
7477 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7478 }
7479 }
7480 if (!var6) {
7481 fprintf(stderr, "Runtime error: %s", "Assert failed");
7482 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26638);
7483 show_backtrace(1);
7484 }
7485 var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr);
7486 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ANeExpr__init_aneexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aneexpr on <var9:ANeExpr>*/;
7487 var_pexprnode1 = var9;
7488 var_node_list = var_pexprnode1;
7489 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction724> */
7490 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7491 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7492 RET_LABEL:;
7493 }
7494 /* method parser#ReduceAction724#action for (self: Object, Parser) */
7495 void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) {
7496 parser__ReduceAction724__action(self, p0);
7497 RET_LABEL:;
7498 }
7499 /* method parser#ReduceAction725#action for (self: ReduceAction725, Parser) */
7500 void parser__ReduceAction725__action(val* self, val* p0) {
7501 val* var_p /* var p: Parser */;
7502 val* var /* : null */;
7503 val* var_node_list /* var node_list: nullable Object */;
7504 val* var1 /* : nullable Object */;
7505 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7506 val* var2 /* : nullable Object */;
7507 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7508 val* var3 /* : nullable Object */;
7509 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7510 val* var4 /* : nullable Object */;
7511 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7512 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7513 short int var5 /* : Bool */;
7514 int cltype;
7515 int idtype;
7516 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7517 short int var6 /* : Bool */;
7518 int cltype7;
7519 int idtype8;
7520 val* var9 /* : ALtExpr */;
7521 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
7522 long var10 /* : Int */;
7523 long var11 /* : Int */;
7524 var_p = p0;
7525 var = NULL;
7526 var_node_list = var;
7527 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7528 var_nodearraylist4 = var1;
7529 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7530 var_nodearraylist3 = var2;
7531 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7532 var_nodearraylist2 = var3;
7533 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7534 var_nodearraylist1 = var4;
7535 var_pexprnode2 = var_nodearraylist1;
7536 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7537 cltype = type_nullable_parser_nodes__AExpr.color;
7538 idtype = type_nullable_parser_nodes__AExpr.id;
7539 if(var_pexprnode2 == NULL) {
7540 var5 = 1;
7541 } else {
7542 if(cltype >= var_pexprnode2->type->table_size) {
7543 var5 = 0;
7544 } else {
7545 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7546 }
7547 }
7548 if (!var5) {
7549 fprintf(stderr, "Runtime error: %s", "Assert failed");
7550 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26657);
7551 show_backtrace(1);
7552 }
7553 var_pexprnode3 = var_nodearraylist4;
7554 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7555 cltype7 = type_nullable_parser_nodes__AExpr.color;
7556 idtype8 = type_nullable_parser_nodes__AExpr.id;
7557 if(var_pexprnode3 == NULL) {
7558 var6 = 1;
7559 } else {
7560 if(cltype7 >= var_pexprnode3->type->table_size) {
7561 var6 = 0;
7562 } else {
7563 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7564 }
7565 }
7566 if (!var6) {
7567 fprintf(stderr, "Runtime error: %s", "Assert failed");
7568 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26659);
7569 show_backtrace(1);
7570 }
7571 var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr);
7572 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALtExpr__init_altexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_altexpr on <var9:ALtExpr>*/;
7573 var_pexprnode1 = var9;
7574 var_node_list = var_pexprnode1;
7575 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction725> */
7576 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7577 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7578 RET_LABEL:;
7579 }
7580 /* method parser#ReduceAction725#action for (self: Object, Parser) */
7581 void VIRTUAL_parser__ReduceAction725__action(val* self, val* p0) {
7582 parser__ReduceAction725__action(self, p0);
7583 RET_LABEL:;
7584 }
7585 /* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */
7586 void parser__ReduceAction726__action(val* self, val* p0) {
7587 val* var_p /* var p: Parser */;
7588 val* var /* : null */;
7589 val* var_node_list /* var node_list: nullable Object */;
7590 val* var1 /* : nullable Object */;
7591 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7592 val* var2 /* : nullable Object */;
7593 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7594 val* var3 /* : nullable Object */;
7595 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7596 val* var4 /* : nullable Object */;
7597 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7598 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7599 short int var5 /* : Bool */;
7600 int cltype;
7601 int idtype;
7602 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7603 short int var6 /* : Bool */;
7604 int cltype7;
7605 int idtype8;
7606 val* var9 /* : ALeExpr */;
7607 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
7608 long var10 /* : Int */;
7609 long var11 /* : Int */;
7610 var_p = p0;
7611 var = NULL;
7612 var_node_list = var;
7613 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7614 var_nodearraylist4 = var1;
7615 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7616 var_nodearraylist3 = var2;
7617 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7618 var_nodearraylist2 = var3;
7619 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7620 var_nodearraylist1 = var4;
7621 var_pexprnode2 = var_nodearraylist1;
7622 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7623 cltype = type_nullable_parser_nodes__AExpr.color;
7624 idtype = type_nullable_parser_nodes__AExpr.id;
7625 if(var_pexprnode2 == NULL) {
7626 var5 = 1;
7627 } else {
7628 if(cltype >= var_pexprnode2->type->table_size) {
7629 var5 = 0;
7630 } else {
7631 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7632 }
7633 }
7634 if (!var5) {
7635 fprintf(stderr, "Runtime error: %s", "Assert failed");
7636 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26678);
7637 show_backtrace(1);
7638 }
7639 var_pexprnode3 = var_nodearraylist4;
7640 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7641 cltype7 = type_nullable_parser_nodes__AExpr.color;
7642 idtype8 = type_nullable_parser_nodes__AExpr.id;
7643 if(var_pexprnode3 == NULL) {
7644 var6 = 1;
7645 } else {
7646 if(cltype7 >= var_pexprnode3->type->table_size) {
7647 var6 = 0;
7648 } else {
7649 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7650 }
7651 }
7652 if (!var6) {
7653 fprintf(stderr, "Runtime error: %s", "Assert failed");
7654 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26680);
7655 show_backtrace(1);
7656 }
7657 var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr);
7658 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALeExpr__init_aleexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aleexpr on <var9:ALeExpr>*/;
7659 var_pexprnode1 = var9;
7660 var_node_list = var_pexprnode1;
7661 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction726> */
7662 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7663 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7664 RET_LABEL:;
7665 }
7666 /* method parser#ReduceAction726#action for (self: Object, Parser) */
7667 void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) {
7668 parser__ReduceAction726__action(self, p0);
7669 RET_LABEL:;
7670 }
7671 /* method parser#ReduceAction727#action for (self: ReduceAction727, Parser) */
7672 void parser__ReduceAction727__action(val* self, val* p0) {
7673 val* var_p /* var p: Parser */;
7674 val* var /* : null */;
7675 val* var_node_list /* var node_list: nullable Object */;
7676 val* var1 /* : nullable Object */;
7677 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7678 val* var2 /* : nullable Object */;
7679 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7680 val* var3 /* : nullable Object */;
7681 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7682 val* var4 /* : nullable Object */;
7683 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7684 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7685 short int var5 /* : Bool */;
7686 int cltype;
7687 int idtype;
7688 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7689 short int var6 /* : Bool */;
7690 int cltype7;
7691 int idtype8;
7692 val* var9 /* : ALlExpr */;
7693 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
7694 long var10 /* : Int */;
7695 long var11 /* : Int */;
7696 var_p = p0;
7697 var = NULL;
7698 var_node_list = var;
7699 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7700 var_nodearraylist4 = var1;
7701 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7702 var_nodearraylist3 = var2;
7703 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7704 var_nodearraylist2 = var3;
7705 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7706 var_nodearraylist1 = var4;
7707 var_pexprnode2 = var_nodearraylist1;
7708 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7709 cltype = type_nullable_parser_nodes__AExpr.color;
7710 idtype = type_nullable_parser_nodes__AExpr.id;
7711 if(var_pexprnode2 == NULL) {
7712 var5 = 1;
7713 } else {
7714 if(cltype >= var_pexprnode2->type->table_size) {
7715 var5 = 0;
7716 } else {
7717 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7718 }
7719 }
7720 if (!var5) {
7721 fprintf(stderr, "Runtime error: %s", "Assert failed");
7722 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26699);
7723 show_backtrace(1);
7724 }
7725 var_pexprnode3 = var_nodearraylist4;
7726 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7727 cltype7 = type_nullable_parser_nodes__AExpr.color;
7728 idtype8 = type_nullable_parser_nodes__AExpr.id;
7729 if(var_pexprnode3 == NULL) {
7730 var6 = 1;
7731 } else {
7732 if(cltype7 >= var_pexprnode3->type->table_size) {
7733 var6 = 0;
7734 } else {
7735 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7736 }
7737 }
7738 if (!var6) {
7739 fprintf(stderr, "Runtime error: %s", "Assert failed");
7740 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26701);
7741 show_backtrace(1);
7742 }
7743 var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr);
7744 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALlExpr__init_allexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_allexpr on <var9:ALlExpr>*/;
7745 var_pexprnode1 = var9;
7746 var_node_list = var_pexprnode1;
7747 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction727> */
7748 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7749 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7750 RET_LABEL:;
7751 }
7752 /* method parser#ReduceAction727#action for (self: Object, Parser) */
7753 void VIRTUAL_parser__ReduceAction727__action(val* self, val* p0) {
7754 parser__ReduceAction727__action(self, p0);
7755 RET_LABEL:;
7756 }
7757 /* method parser#ReduceAction728#action for (self: ReduceAction728, Parser) */
7758 void parser__ReduceAction728__action(val* self, val* p0) {
7759 val* var_p /* var p: Parser */;
7760 val* var /* : null */;
7761 val* var_node_list /* var node_list: nullable Object */;
7762 val* var1 /* : nullable Object */;
7763 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7764 val* var2 /* : nullable Object */;
7765 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7766 val* var3 /* : nullable Object */;
7767 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7768 val* var4 /* : nullable Object */;
7769 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7770 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7771 short int var5 /* : Bool */;
7772 int cltype;
7773 int idtype;
7774 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7775 short int var6 /* : Bool */;
7776 int cltype7;
7777 int idtype8;
7778 val* var9 /* : AGtExpr */;
7779 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
7780 long var10 /* : Int */;
7781 long var11 /* : Int */;
7782 var_p = p0;
7783 var = NULL;
7784 var_node_list = var;
7785 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7786 var_nodearraylist4 = var1;
7787 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7788 var_nodearraylist3 = var2;
7789 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7790 var_nodearraylist2 = var3;
7791 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7792 var_nodearraylist1 = var4;
7793 var_pexprnode2 = var_nodearraylist1;
7794 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7795 cltype = type_nullable_parser_nodes__AExpr.color;
7796 idtype = type_nullable_parser_nodes__AExpr.id;
7797 if(var_pexprnode2 == NULL) {
7798 var5 = 1;
7799 } else {
7800 if(cltype >= var_pexprnode2->type->table_size) {
7801 var5 = 0;
7802 } else {
7803 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7804 }
7805 }
7806 if (!var5) {
7807 fprintf(stderr, "Runtime error: %s", "Assert failed");
7808 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26720);
7809 show_backtrace(1);
7810 }
7811 var_pexprnode3 = var_nodearraylist4;
7812 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7813 cltype7 = type_nullable_parser_nodes__AExpr.color;
7814 idtype8 = type_nullable_parser_nodes__AExpr.id;
7815 if(var_pexprnode3 == NULL) {
7816 var6 = 1;
7817 } else {
7818 if(cltype7 >= var_pexprnode3->type->table_size) {
7819 var6 = 0;
7820 } else {
7821 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7822 }
7823 }
7824 if (!var6) {
7825 fprintf(stderr, "Runtime error: %s", "Assert failed");
7826 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26722);
7827 show_backtrace(1);
7828 }
7829 var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr);
7830 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGtExpr__init_agtexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_agtexpr on <var9:AGtExpr>*/;
7831 var_pexprnode1 = var9;
7832 var_node_list = var_pexprnode1;
7833 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction728> */
7834 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7835 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7836 RET_LABEL:;
7837 }
7838 /* method parser#ReduceAction728#action for (self: Object, Parser) */
7839 void VIRTUAL_parser__ReduceAction728__action(val* self, val* p0) {
7840 parser__ReduceAction728__action(self, p0);
7841 RET_LABEL:;
7842 }
7843 /* method parser#ReduceAction729#action for (self: ReduceAction729, Parser) */
7844 void parser__ReduceAction729__action(val* self, val* p0) {
7845 val* var_p /* var p: Parser */;
7846 val* var /* : null */;
7847 val* var_node_list /* var node_list: nullable Object */;
7848 val* var1 /* : nullable Object */;
7849 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7850 val* var2 /* : nullable Object */;
7851 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7852 val* var3 /* : nullable Object */;
7853 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7854 val* var4 /* : nullable Object */;
7855 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7856 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7857 short int var5 /* : Bool */;
7858 int cltype;
7859 int idtype;
7860 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7861 short int var6 /* : Bool */;
7862 int cltype7;
7863 int idtype8;
7864 val* var9 /* : AGeExpr */;
7865 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
7866 long var10 /* : Int */;
7867 long var11 /* : Int */;
7868 var_p = p0;
7869 var = NULL;
7870 var_node_list = var;
7871 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7872 var_nodearraylist4 = var1;
7873 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7874 var_nodearraylist3 = var2;
7875 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7876 var_nodearraylist2 = var3;
7877 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7878 var_nodearraylist1 = var4;
7879 var_pexprnode2 = var_nodearraylist1;
7880 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7881 cltype = type_nullable_parser_nodes__AExpr.color;
7882 idtype = type_nullable_parser_nodes__AExpr.id;
7883 if(var_pexprnode2 == NULL) {
7884 var5 = 1;
7885 } else {
7886 if(cltype >= var_pexprnode2->type->table_size) {
7887 var5 = 0;
7888 } else {
7889 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7890 }
7891 }
7892 if (!var5) {
7893 fprintf(stderr, "Runtime error: %s", "Assert failed");
7894 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26741);
7895 show_backtrace(1);
7896 }
7897 var_pexprnode3 = var_nodearraylist4;
7898 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7899 cltype7 = type_nullable_parser_nodes__AExpr.color;
7900 idtype8 = type_nullable_parser_nodes__AExpr.id;
7901 if(var_pexprnode3 == NULL) {
7902 var6 = 1;
7903 } else {
7904 if(cltype7 >= var_pexprnode3->type->table_size) {
7905 var6 = 0;
7906 } else {
7907 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7908 }
7909 }
7910 if (!var6) {
7911 fprintf(stderr, "Runtime error: %s", "Assert failed");
7912 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26743);
7913 show_backtrace(1);
7914 }
7915 var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr);
7916 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGeExpr__init_ageexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_ageexpr on <var9:AGeExpr>*/;
7917 var_pexprnode1 = var9;
7918 var_node_list = var_pexprnode1;
7919 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction729> */
7920 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7921 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7922 RET_LABEL:;
7923 }
7924 /* method parser#ReduceAction729#action for (self: Object, Parser) */
7925 void VIRTUAL_parser__ReduceAction729__action(val* self, val* p0) {
7926 parser__ReduceAction729__action(self, p0);
7927 RET_LABEL:;
7928 }
7929 /* method parser#ReduceAction730#action for (self: ReduceAction730, Parser) */
7930 void parser__ReduceAction730__action(val* self, val* p0) {
7931 val* var_p /* var p: Parser */;
7932 val* var /* : null */;
7933 val* var_node_list /* var node_list: nullable Object */;
7934 val* var1 /* : nullable Object */;
7935 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7936 val* var2 /* : nullable Object */;
7937 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7938 val* var3 /* : nullable Object */;
7939 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7940 val* var4 /* : nullable Object */;
7941 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7942 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7943 short int var5 /* : Bool */;
7944 int cltype;
7945 int idtype;
7946 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7947 short int var6 /* : Bool */;
7948 int cltype7;
7949 int idtype8;
7950 val* var9 /* : AGgExpr */;
7951 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
7952 long var10 /* : Int */;
7953 long var11 /* : Int */;
7954 var_p = p0;
7955 var = NULL;
7956 var_node_list = var;
7957 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7958 var_nodearraylist4 = var1;
7959 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7960 var_nodearraylist3 = var2;
7961 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7962 var_nodearraylist2 = var3;
7963 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7964 var_nodearraylist1 = var4;
7965 var_pexprnode2 = var_nodearraylist1;
7966 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7967 cltype = type_nullable_parser_nodes__AExpr.color;
7968 idtype = type_nullable_parser_nodes__AExpr.id;
7969 if(var_pexprnode2 == NULL) {
7970 var5 = 1;
7971 } else {
7972 if(cltype >= var_pexprnode2->type->table_size) {
7973 var5 = 0;
7974 } else {
7975 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7976 }
7977 }
7978 if (!var5) {
7979 fprintf(stderr, "Runtime error: %s", "Assert failed");
7980 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26762);
7981 show_backtrace(1);
7982 }
7983 var_pexprnode3 = var_nodearraylist4;
7984 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7985 cltype7 = type_nullable_parser_nodes__AExpr.color;
7986 idtype8 = type_nullable_parser_nodes__AExpr.id;
7987 if(var_pexprnode3 == NULL) {
7988 var6 = 1;
7989 } else {
7990 if(cltype7 >= var_pexprnode3->type->table_size) {
7991 var6 = 0;
7992 } else {
7993 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7994 }
7995 }
7996 if (!var6) {
7997 fprintf(stderr, "Runtime error: %s", "Assert failed");
7998 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26764);
7999 show_backtrace(1);
8000 }
8001 var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr);
8002 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGgExpr__init_aggexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aggexpr on <var9:AGgExpr>*/;
8003 var_pexprnode1 = var9;
8004 var_node_list = var_pexprnode1;
8005 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction730> */
8006 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8007 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8008 RET_LABEL:;
8009 }
8010 /* method parser#ReduceAction730#action for (self: Object, Parser) */
8011 void VIRTUAL_parser__ReduceAction730__action(val* self, val* p0) {
8012 parser__ReduceAction730__action(self, p0);
8013 RET_LABEL:;
8014 }
8015 /* method parser#ReduceAction731#action for (self: ReduceAction731, Parser) */
8016 void parser__ReduceAction731__action(val* self, val* p0) {
8017 val* var_p /* var p: Parser */;
8018 val* var /* : null */;
8019 val* var_node_list /* var node_list: nullable Object */;
8020 val* var1 /* : nullable Object */;
8021 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8022 val* var2 /* : nullable Object */;
8023 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8024 val* var3 /* : nullable Object */;
8025 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8026 val* var4 /* : nullable Object */;
8027 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8028 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8029 short int var5 /* : Bool */;
8030 int cltype;
8031 int idtype;
8032 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8033 short int var6 /* : Bool */;
8034 int cltype7;
8035 int idtype8;
8036 val* var9 /* : AStarshipExpr */;
8037 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
8038 long var10 /* : Int */;
8039 long var11 /* : Int */;
8040 var_p = p0;
8041 var = NULL;
8042 var_node_list = var;
8043 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8044 var_nodearraylist4 = var1;
8045 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8046 var_nodearraylist3 = var2;
8047 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8048 var_nodearraylist2 = var3;
8049 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8050 var_nodearraylist1 = var4;
8051 var_pexprnode2 = var_nodearraylist1;
8052 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8053 cltype = type_nullable_parser_nodes__AExpr.color;
8054 idtype = type_nullable_parser_nodes__AExpr.id;
8055 if(var_pexprnode2 == NULL) {
8056 var5 = 1;
8057 } else {
8058 if(cltype >= var_pexprnode2->type->table_size) {
8059 var5 = 0;
8060 } else {
8061 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8062 }
8063 }
8064 if (!var5) {
8065 fprintf(stderr, "Runtime error: %s", "Assert failed");
8066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26783);
8067 show_backtrace(1);
8068 }
8069 var_pexprnode3 = var_nodearraylist4;
8070 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8071 cltype7 = type_nullable_parser_nodes__AExpr.color;
8072 idtype8 = type_nullable_parser_nodes__AExpr.id;
8073 if(var_pexprnode3 == NULL) {
8074 var6 = 1;
8075 } else {
8076 if(cltype7 >= var_pexprnode3->type->table_size) {
8077 var6 = 0;
8078 } else {
8079 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8080 }
8081 }
8082 if (!var6) {
8083 fprintf(stderr, "Runtime error: %s", "Assert failed");
8084 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26785);
8085 show_backtrace(1);
8086 }
8087 var9 = NEW_parser_nodes__AStarshipExpr(&type_parser_nodes__AStarshipExpr);
8088 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarshipExpr__init_astarshipexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarshipexpr on <var9:AStarshipExpr>*/;
8089 var_pexprnode1 = var9;
8090 var_node_list = var_pexprnode1;
8091 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction731> */
8092 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8093 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8094 RET_LABEL:;
8095 }
8096 /* method parser#ReduceAction731#action for (self: Object, Parser) */
8097 void VIRTUAL_parser__ReduceAction731__action(val* self, val* p0) {
8098 parser__ReduceAction731__action(self, p0);
8099 RET_LABEL:;
8100 }
8101 /* method parser#ReduceAction732#action for (self: ReduceAction732, Parser) */
8102 void parser__ReduceAction732__action(val* self, val* p0) {
8103 val* var_p /* var p: Parser */;
8104 val* var /* : null */;
8105 val* var_node_list /* var node_list: nullable Object */;
8106 val* var1 /* : nullable Object */;
8107 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8108 val* var2 /* : nullable Object */;
8109 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8110 val* var3 /* : nullable Object */;
8111 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8112 val* var4 /* : nullable Object */;
8113 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8114 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8115 short int var5 /* : Bool */;
8116 int cltype;
8117 int idtype;
8118 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
8119 short int var6 /* : Bool */;
8120 int cltype7;
8121 int idtype8;
8122 val* var9 /* : AIsaExpr */;
8123 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
8124 long var10 /* : Int */;
8125 long var11 /* : Int */;
8126 var_p = p0;
8127 var = NULL;
8128 var_node_list = var;
8129 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8130 var_nodearraylist4 = var1;
8131 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8132 var_nodearraylist3 = var2;
8133 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8134 var_nodearraylist2 = var3;
8135 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8136 var_nodearraylist1 = var4;
8137 var_pexprnode2 = var_nodearraylist1;
8138 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8139 cltype = type_nullable_parser_nodes__AExpr.color;
8140 idtype = type_nullable_parser_nodes__AExpr.id;
8141 if(var_pexprnode2 == NULL) {
8142 var5 = 1;
8143 } else {
8144 if(cltype >= var_pexprnode2->type->table_size) {
8145 var5 = 0;
8146 } else {
8147 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8148 }
8149 }
8150 if (!var5) {
8151 fprintf(stderr, "Runtime error: %s", "Assert failed");
8152 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26804);
8153 show_backtrace(1);
8154 }
8155 var_ptypenode3 = var_nodearraylist4;
8156 /* <var_ptypenode3:nullable Object> isa nullable AType */
8157 cltype7 = type_nullable_parser_nodes__AType.color;
8158 idtype8 = type_nullable_parser_nodes__AType.id;
8159 if(var_ptypenode3 == NULL) {
8160 var6 = 1;
8161 } else {
8162 if(cltype7 >= var_ptypenode3->type->table_size) {
8163 var6 = 0;
8164 } else {
8165 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
8166 }
8167 }
8168 if (!var6) {
8169 fprintf(stderr, "Runtime error: %s", "Assert failed");
8170 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26806);
8171 show_backtrace(1);
8172 }
8173 var9 = NEW_parser_nodes__AIsaExpr(&type_parser_nodes__AIsaExpr);
8174 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIsaExpr__init_aisaexpr]))(var9, var_pexprnode2, var_ptypenode3) /* init_aisaexpr on <var9:AIsaExpr>*/;
8175 var_pexprnode1 = var9;
8176 var_node_list = var_pexprnode1;
8177 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction732> */
8178 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8179 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8180 RET_LABEL:;
8181 }
8182 /* method parser#ReduceAction732#action for (self: Object, Parser) */
8183 void VIRTUAL_parser__ReduceAction732__action(val* self, val* p0) {
8184 parser__ReduceAction732__action(self, p0);
8185 RET_LABEL:;
8186 }
8187 /* method parser#ReduceAction734#action for (self: ReduceAction734, Parser) */
8188 void parser__ReduceAction734__action(val* self, val* p0) {
8189 val* var_p /* var p: Parser */;
8190 val* var /* : null */;
8191 val* var_node_list /* var node_list: nullable Object */;
8192 val* var1 /* : nullable Object */;
8193 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8194 val* var2 /* : nullable Object */;
8195 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8196 val* var3 /* : nullable Object */;
8197 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8198 val* var4 /* : nullable Object */;
8199 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8200 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8201 short int var5 /* : Bool */;
8202 int cltype;
8203 int idtype;
8204 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8205 short int var6 /* : Bool */;
8206 int cltype7;
8207 int idtype8;
8208 val* var9 /* : APlusExpr */;
8209 val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */;
8210 long var10 /* : Int */;
8211 long var11 /* : Int */;
8212 var_p = p0;
8213 var = NULL;
8214 var_node_list = var;
8215 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8216 var_nodearraylist4 = var1;
8217 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8218 var_nodearraylist3 = var2;
8219 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8220 var_nodearraylist2 = var3;
8221 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8222 var_nodearraylist1 = var4;
8223 var_pexprnode2 = var_nodearraylist1;
8224 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8225 cltype = type_nullable_parser_nodes__AExpr.color;
8226 idtype = type_nullable_parser_nodes__AExpr.id;
8227 if(var_pexprnode2 == NULL) {
8228 var5 = 1;
8229 } else {
8230 if(cltype >= var_pexprnode2->type->table_size) {
8231 var5 = 0;
8232 } else {
8233 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8234 }
8235 }
8236 if (!var5) {
8237 fprintf(stderr, "Runtime error: %s", "Assert failed");
8238 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26825);
8239 show_backtrace(1);
8240 }
8241 var_pexprnode3 = var_nodearraylist4;
8242 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8243 cltype7 = type_nullable_parser_nodes__AExpr.color;
8244 idtype8 = type_nullable_parser_nodes__AExpr.id;
8245 if(var_pexprnode3 == NULL) {
8246 var6 = 1;
8247 } else {
8248 if(cltype7 >= var_pexprnode3->type->table_size) {
8249 var6 = 0;
8250 } else {
8251 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8252 }
8253 }
8254 if (!var6) {
8255 fprintf(stderr, "Runtime error: %s", "Assert failed");
8256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26827);
8257 show_backtrace(1);
8258 }
8259 var9 = NEW_parser_nodes__APlusExpr(&type_parser_nodes__APlusExpr);
8260 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APlusExpr__init_aplusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aplusexpr on <var9:APlusExpr>*/;
8261 var_pexprnode1 = var9;
8262 var_node_list = var_pexprnode1;
8263 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction734> */
8264 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8265 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8266 RET_LABEL:;
8267 }
8268 /* method parser#ReduceAction734#action for (self: Object, Parser) */
8269 void VIRTUAL_parser__ReduceAction734__action(val* self, val* p0) {
8270 parser__ReduceAction734__action(self, p0);
8271 RET_LABEL:;
8272 }
8273 /* method parser#ReduceAction735#action for (self: ReduceAction735, Parser) */
8274 void parser__ReduceAction735__action(val* self, val* p0) {
8275 val* var_p /* var p: Parser */;
8276 val* var /* : null */;
8277 val* var_node_list /* var node_list: nullable Object */;
8278 val* var1 /* : nullable Object */;
8279 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8280 val* var2 /* : nullable Object */;
8281 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8282 val* var3 /* : nullable Object */;
8283 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8284 val* var4 /* : nullable Object */;
8285 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8286 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8287 short int var5 /* : Bool */;
8288 int cltype;
8289 int idtype;
8290 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8291 short int var6 /* : Bool */;
8292 int cltype7;
8293 int idtype8;
8294 val* var9 /* : AMinusExpr */;
8295 val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */;
8296 long var10 /* : Int */;
8297 long var11 /* : Int */;
8298 var_p = p0;
8299 var = NULL;
8300 var_node_list = var;
8301 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8302 var_nodearraylist4 = var1;
8303 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8304 var_nodearraylist3 = var2;
8305 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8306 var_nodearraylist2 = var3;
8307 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8308 var_nodearraylist1 = var4;
8309 var_pexprnode2 = var_nodearraylist1;
8310 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8311 cltype = type_nullable_parser_nodes__AExpr.color;
8312 idtype = type_nullable_parser_nodes__AExpr.id;
8313 if(var_pexprnode2 == NULL) {
8314 var5 = 1;
8315 } else {
8316 if(cltype >= var_pexprnode2->type->table_size) {
8317 var5 = 0;
8318 } else {
8319 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8320 }
8321 }
8322 if (!var5) {
8323 fprintf(stderr, "Runtime error: %s", "Assert failed");
8324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26846);
8325 show_backtrace(1);
8326 }
8327 var_pexprnode3 = var_nodearraylist4;
8328 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8329 cltype7 = type_nullable_parser_nodes__AExpr.color;
8330 idtype8 = type_nullable_parser_nodes__AExpr.id;
8331 if(var_pexprnode3 == NULL) {
8332 var6 = 1;
8333 } else {
8334 if(cltype7 >= var_pexprnode3->type->table_size) {
8335 var6 = 0;
8336 } else {
8337 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8338 }
8339 }
8340 if (!var6) {
8341 fprintf(stderr, "Runtime error: %s", "Assert failed");
8342 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26848);
8343 show_backtrace(1);
8344 }
8345 var9 = NEW_parser_nodes__AMinusExpr(&type_parser_nodes__AMinusExpr);
8346 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AMinusExpr__init_aminusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aminusexpr on <var9:AMinusExpr>*/;
8347 var_pexprnode1 = var9;
8348 var_node_list = var_pexprnode1;
8349 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction735> */
8350 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8351 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8352 RET_LABEL:;
8353 }
8354 /* method parser#ReduceAction735#action for (self: Object, Parser) */
8355 void VIRTUAL_parser__ReduceAction735__action(val* self, val* p0) {
8356 parser__ReduceAction735__action(self, p0);
8357 RET_LABEL:;
8358 }
8359 /* method parser#ReduceAction737#action for (self: ReduceAction737, Parser) */
8360 void parser__ReduceAction737__action(val* self, val* p0) {
8361 val* var_p /* var p: Parser */;
8362 val* var /* : null */;
8363 val* var_node_list /* var node_list: nullable Object */;
8364 val* var1 /* : nullable Object */;
8365 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8366 val* var2 /* : nullable Object */;
8367 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8368 val* var3 /* : nullable Object */;
8369 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8370 val* var4 /* : nullable Object */;
8371 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8372 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8373 short int var5 /* : Bool */;
8374 int cltype;
8375 int idtype;
8376 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8377 short int var6 /* : Bool */;
8378 int cltype7;
8379 int idtype8;
8380 val* var9 /* : AStarExpr */;
8381 val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */;
8382 long var10 /* : Int */;
8383 long var11 /* : Int */;
8384 var_p = p0;
8385 var = NULL;
8386 var_node_list = var;
8387 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8388 var_nodearraylist4 = var1;
8389 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8390 var_nodearraylist3 = var2;
8391 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8392 var_nodearraylist2 = var3;
8393 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8394 var_nodearraylist1 = var4;
8395 var_pexprnode2 = var_nodearraylist1;
8396 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8397 cltype = type_nullable_parser_nodes__AExpr.color;
8398 idtype = type_nullable_parser_nodes__AExpr.id;
8399 if(var_pexprnode2 == NULL) {
8400 var5 = 1;
8401 } else {
8402 if(cltype >= var_pexprnode2->type->table_size) {
8403 var5 = 0;
8404 } else {
8405 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8406 }
8407 }
8408 if (!var5) {
8409 fprintf(stderr, "Runtime error: %s", "Assert failed");
8410 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26867);
8411 show_backtrace(1);
8412 }
8413 var_pexprnode3 = var_nodearraylist4;
8414 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8415 cltype7 = type_nullable_parser_nodes__AExpr.color;
8416 idtype8 = type_nullable_parser_nodes__AExpr.id;
8417 if(var_pexprnode3 == NULL) {
8418 var6 = 1;
8419 } else {
8420 if(cltype7 >= var_pexprnode3->type->table_size) {
8421 var6 = 0;
8422 } else {
8423 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8424 }
8425 }
8426 if (!var6) {
8427 fprintf(stderr, "Runtime error: %s", "Assert failed");
8428 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26869);
8429 show_backtrace(1);
8430 }
8431 var9 = NEW_parser_nodes__AStarExpr(&type_parser_nodes__AStarExpr);
8432 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarExpr__init_astarexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarexpr on <var9:AStarExpr>*/;
8433 var_pexprnode1 = var9;
8434 var_node_list = var_pexprnode1;
8435 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction737> */
8436 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8437 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8438 RET_LABEL:;
8439 }
8440 /* method parser#ReduceAction737#action for (self: Object, Parser) */
8441 void VIRTUAL_parser__ReduceAction737__action(val* self, val* p0) {
8442 parser__ReduceAction737__action(self, p0);
8443 RET_LABEL:;
8444 }
8445 /* method parser#ReduceAction738#action for (self: ReduceAction738, Parser) */
8446 void parser__ReduceAction738__action(val* self, val* p0) {
8447 val* var_p /* var p: Parser */;
8448 val* var /* : null */;
8449 val* var_node_list /* var node_list: nullable Object */;
8450 val* var1 /* : nullable Object */;
8451 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8452 val* var2 /* : nullable Object */;
8453 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8454 val* var3 /* : nullable Object */;
8455 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8456 val* var4 /* : nullable Object */;
8457 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8458 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8459 short int var5 /* : Bool */;
8460 int cltype;
8461 int idtype;
8462 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8463 short int var6 /* : Bool */;
8464 int cltype7;
8465 int idtype8;
8466 val* var9 /* : ASlashExpr */;
8467 val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */;
8468 long var10 /* : Int */;
8469 long var11 /* : Int */;
8470 var_p = p0;
8471 var = NULL;
8472 var_node_list = var;
8473 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8474 var_nodearraylist4 = var1;
8475 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8476 var_nodearraylist3 = var2;
8477 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8478 var_nodearraylist2 = var3;
8479 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8480 var_nodearraylist1 = var4;
8481 var_pexprnode2 = var_nodearraylist1;
8482 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8483 cltype = type_nullable_parser_nodes__AExpr.color;
8484 idtype = type_nullable_parser_nodes__AExpr.id;
8485 if(var_pexprnode2 == NULL) {
8486 var5 = 1;
8487 } else {
8488 if(cltype >= var_pexprnode2->type->table_size) {
8489 var5 = 0;
8490 } else {
8491 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8492 }
8493 }
8494 if (!var5) {
8495 fprintf(stderr, "Runtime error: %s", "Assert failed");
8496 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26888);
8497 show_backtrace(1);
8498 }
8499 var_pexprnode3 = var_nodearraylist4;
8500 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8501 cltype7 = type_nullable_parser_nodes__AExpr.color;
8502 idtype8 = type_nullable_parser_nodes__AExpr.id;
8503 if(var_pexprnode3 == NULL) {
8504 var6 = 1;
8505 } else {
8506 if(cltype7 >= var_pexprnode3->type->table_size) {
8507 var6 = 0;
8508 } else {
8509 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8510 }
8511 }
8512 if (!var6) {
8513 fprintf(stderr, "Runtime error: %s", "Assert failed");
8514 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26890);
8515 show_backtrace(1);
8516 }
8517 var9 = NEW_parser_nodes__ASlashExpr(&type_parser_nodes__ASlashExpr);
8518 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ASlashExpr__init_aslashexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aslashexpr on <var9:ASlashExpr>*/;
8519 var_pexprnode1 = var9;
8520 var_node_list = var_pexprnode1;
8521 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction738> */
8522 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8523 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8524 RET_LABEL:;
8525 }
8526 /* method parser#ReduceAction738#action for (self: Object, Parser) */
8527 void VIRTUAL_parser__ReduceAction738__action(val* self, val* p0) {
8528 parser__ReduceAction738__action(self, p0);
8529 RET_LABEL:;
8530 }
8531 /* method parser#ReduceAction739#action for (self: ReduceAction739, Parser) */
8532 void parser__ReduceAction739__action(val* self, val* p0) {
8533 val* var_p /* var p: Parser */;
8534 val* var /* : null */;
8535 val* var_node_list /* var node_list: nullable Object */;
8536 val* var1 /* : nullable Object */;
8537 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8538 val* var2 /* : nullable Object */;
8539 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8540 val* var3 /* : nullable Object */;
8541 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8542 val* var4 /* : nullable Object */;
8543 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8544 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8545 short int var5 /* : Bool */;
8546 int cltype;
8547 int idtype;
8548 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8549 short int var6 /* : Bool */;
8550 int cltype7;
8551 int idtype8;
8552 val* var9 /* : APercentExpr */;
8553 val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */;
8554 long var10 /* : Int */;
8555 long var11 /* : Int */;
8556 var_p = p0;
8557 var = NULL;
8558 var_node_list = var;
8559 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8560 var_nodearraylist4 = var1;
8561 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8562 var_nodearraylist3 = var2;
8563 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8564 var_nodearraylist2 = var3;
8565 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8566 var_nodearraylist1 = var4;
8567 var_pexprnode2 = var_nodearraylist1;
8568 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8569 cltype = type_nullable_parser_nodes__AExpr.color;
8570 idtype = type_nullable_parser_nodes__AExpr.id;
8571 if(var_pexprnode2 == NULL) {
8572 var5 = 1;
8573 } else {
8574 if(cltype >= var_pexprnode2->type->table_size) {
8575 var5 = 0;
8576 } else {
8577 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8578 }
8579 }
8580 if (!var5) {
8581 fprintf(stderr, "Runtime error: %s", "Assert failed");
8582 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26909);
8583 show_backtrace(1);
8584 }
8585 var_pexprnode3 = var_nodearraylist4;
8586 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8587 cltype7 = type_nullable_parser_nodes__AExpr.color;
8588 idtype8 = type_nullable_parser_nodes__AExpr.id;
8589 if(var_pexprnode3 == NULL) {
8590 var6 = 1;
8591 } else {
8592 if(cltype7 >= var_pexprnode3->type->table_size) {
8593 var6 = 0;
8594 } else {
8595 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8596 }
8597 }
8598 if (!var6) {
8599 fprintf(stderr, "Runtime error: %s", "Assert failed");
8600 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26911);
8601 show_backtrace(1);
8602 }
8603 var9 = NEW_parser_nodes__APercentExpr(&type_parser_nodes__APercentExpr);
8604 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APercentExpr__init_apercentexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_apercentexpr on <var9:APercentExpr>*/;
8605 var_pexprnode1 = var9;
8606 var_node_list = var_pexprnode1;
8607 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction739> */
8608 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8609 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8610 RET_LABEL:;
8611 }
8612 /* method parser#ReduceAction739#action for (self: Object, Parser) */
8613 void VIRTUAL_parser__ReduceAction739__action(val* self, val* p0) {
8614 parser__ReduceAction739__action(self, p0);
8615 RET_LABEL:;
8616 }
8617 /* method parser#ReduceAction741#action for (self: ReduceAction741, Parser) */
8618 void parser__ReduceAction741__action(val* self, val* p0) {
8619 val* var_p /* var p: Parser */;
8620 val* var /* : null */;
8621 val* var_node_list /* var node_list: nullable Object */;
8622 val* var1 /* : nullable Object */;
8623 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8624 val* var2 /* : nullable Object */;
8625 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8626 val* var3 /* : nullable Object */;
8627 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8628 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
8629 short int var4 /* : Bool */;
8630 int cltype;
8631 int idtype;
8632 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8633 short int var5 /* : Bool */;
8634 int cltype6;
8635 int idtype7;
8636 val* var8 /* : AUminusExpr */;
8637 val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */;
8638 long var9 /* : Int */;
8639 long var10 /* : Int */;
8640 var_p = p0;
8641 var = NULL;
8642 var_node_list = var;
8643 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8644 var_nodearraylist3 = var1;
8645 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8646 var_nodearraylist2 = var2;
8647 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8648 var_nodearraylist1 = var3;
8649 var_tminusnode2 = var_nodearraylist1;
8650 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
8651 cltype = type_nullable_parser_nodes__TMinus.color;
8652 idtype = type_nullable_parser_nodes__TMinus.id;
8653 if(var_tminusnode2 == NULL) {
8654 var4 = 1;
8655 } else {
8656 if(cltype >= var_tminusnode2->type->table_size) {
8657 var4 = 0;
8658 } else {
8659 var4 = var_tminusnode2->type->type_table[cltype] == idtype;
8660 }
8661 }
8662 if (!var4) {
8663 fprintf(stderr, "Runtime error: %s", "Assert failed");
8664 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26929);
8665 show_backtrace(1);
8666 }
8667 var_pexprnode3 = var_nodearraylist3;
8668 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8669 cltype6 = type_nullable_parser_nodes__AExpr.color;
8670 idtype7 = type_nullable_parser_nodes__AExpr.id;
8671 if(var_pexprnode3 == NULL) {
8672 var5 = 1;
8673 } else {
8674 if(cltype6 >= var_pexprnode3->type->table_size) {
8675 var5 = 0;
8676 } else {
8677 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
8678 }
8679 }
8680 if (!var5) {
8681 fprintf(stderr, "Runtime error: %s", "Assert failed");
8682 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26931);
8683 show_backtrace(1);
8684 }
8685 var8 = NEW_parser_nodes__AUminusExpr(&type_parser_nodes__AUminusExpr);
8686 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AUminusExpr__init_auminusexpr]))(var8, var_tminusnode2, var_pexprnode3) /* init_auminusexpr on <var8:AUminusExpr>*/;
8687 var_pexprnode1 = var8;
8688 var_node_list = var_pexprnode1;
8689 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction741> */
8690 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8691 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8692 RET_LABEL:;
8693 }
8694 /* method parser#ReduceAction741#action for (self: Object, Parser) */
8695 void VIRTUAL_parser__ReduceAction741__action(val* self, val* p0) {
8696 parser__ReduceAction741__action(self, p0);
8697 RET_LABEL:;
8698 }
8699 /* method parser#ReduceAction742#action for (self: ReduceAction742, Parser) */
8700 void parser__ReduceAction742__action(val* self, val* p0) {
8701 val* var_p /* var p: Parser */;
8702 val* var /* : null */;
8703 val* var_node_list /* var node_list: nullable Object */;
8704 val* var1 /* : nullable Object */;
8705 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8706 val* var2 /* : nullable Object */;
8707 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8708 val* var3 /* : nullable Object */;
8709 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8710 val* var_tkwoncenode2 /* var tkwoncenode2: nullable Object */;
8711 short int var4 /* : Bool */;
8712 int cltype;
8713 int idtype;
8714 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8715 short int var5 /* : Bool */;
8716 int cltype6;
8717 int idtype7;
8718 val* var8 /* : AOnceExpr */;
8719 val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */;
8720 long var9 /* : Int */;
8721 long var10 /* : Int */;
8722 var_p = p0;
8723 var = NULL;
8724 var_node_list = var;
8725 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8726 var_nodearraylist3 = var1;
8727 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8728 var_nodearraylist2 = var2;
8729 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8730 var_nodearraylist1 = var3;
8731 var_tkwoncenode2 = var_nodearraylist1;
8732 /* <var_tkwoncenode2:nullable Object> isa nullable TKwonce */
8733 cltype = type_nullable_parser_nodes__TKwonce.color;
8734 idtype = type_nullable_parser_nodes__TKwonce.id;
8735 if(var_tkwoncenode2 == NULL) {
8736 var4 = 1;
8737 } else {
8738 if(cltype >= var_tkwoncenode2->type->table_size) {
8739 var4 = 0;
8740 } else {
8741 var4 = var_tkwoncenode2->type->type_table[cltype] == idtype;
8742 }
8743 }
8744 if (!var4) {
8745 fprintf(stderr, "Runtime error: %s", "Assert failed");
8746 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26949);
8747 show_backtrace(1);
8748 }
8749 var_pexprnode3 = var_nodearraylist3;
8750 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8751 cltype6 = type_nullable_parser_nodes__AExpr.color;
8752 idtype7 = type_nullable_parser_nodes__AExpr.id;
8753 if(var_pexprnode3 == NULL) {
8754 var5 = 1;
8755 } else {
8756 if(cltype6 >= var_pexprnode3->type->table_size) {
8757 var5 = 0;
8758 } else {
8759 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
8760 }
8761 }
8762 if (!var5) {
8763 fprintf(stderr, "Runtime error: %s", "Assert failed");
8764 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26951);
8765 show_backtrace(1);
8766 }
8767 var8 = NEW_parser_nodes__AOnceExpr(&type_parser_nodes__AOnceExpr);
8768 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AOnceExpr__init_aonceexpr]))(var8, var_tkwoncenode2, var_pexprnode3) /* init_aonceexpr on <var8:AOnceExpr>*/;
8769 var_pexprnode1 = var8;
8770 var_node_list = var_pexprnode1;
8771 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction742> */
8772 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8773 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8774 RET_LABEL:;
8775 }
8776 /* method parser#ReduceAction742#action for (self: Object, Parser) */
8777 void VIRTUAL_parser__ReduceAction742__action(val* self, val* p0) {
8778 parser__ReduceAction742__action(self, p0);
8779 RET_LABEL:;
8780 }
8781 /* method parser#ReduceAction744#action for (self: ReduceAction744, Parser) */
8782 void parser__ReduceAction744__action(val* self, val* p0) {
8783 val* var_p /* var p: Parser */;
8784 val* var /* : null */;
8785 val* var_node_list /* var node_list: nullable Object */;
8786 val* var1 /* : nullable Object */;
8787 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8788 val* var2 /* : nullable Object */;
8789 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8790 val* var3 /* : nullable Object */;
8791 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8792 val* var4 /* : nullable Object */;
8793 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8794 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
8795 short int var5 /* : Bool */;
8796 int cltype;
8797 int idtype;
8798 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
8799 short int var6 /* : Bool */;
8800 int cltype7;
8801 int idtype8;
8802 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
8803 short int var9 /* : Bool */;
8804 int cltype10;
8805 int idtype11;
8806 val* var12 /* : ANewExpr */;
8807 val* var13 /* : null */;
8808 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
8809 long var14 /* : Int */;
8810 long var15 /* : Int */;
8811 var_p = p0;
8812 var = NULL;
8813 var_node_list = var;
8814 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8815 var_nodearraylist4 = var1;
8816 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8817 var_nodearraylist3 = var2;
8818 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8819 var_nodearraylist2 = var3;
8820 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8821 var_nodearraylist1 = var4;
8822 var_tkwnewnode2 = var_nodearraylist1;
8823 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
8824 cltype = type_nullable_parser_nodes__TKwnew.color;
8825 idtype = type_nullable_parser_nodes__TKwnew.id;
8826 if(var_tkwnewnode2 == NULL) {
8827 var5 = 1;
8828 } else {
8829 if(cltype >= var_tkwnewnode2->type->table_size) {
8830 var5 = 0;
8831 } else {
8832 var5 = var_tkwnewnode2->type->type_table[cltype] == idtype;
8833 }
8834 }
8835 if (!var5) {
8836 fprintf(stderr, "Runtime error: %s", "Assert failed");
8837 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26970);
8838 show_backtrace(1);
8839 }
8840 var_ptypenode3 = var_nodearraylist3;
8841 /* <var_ptypenode3:nullable Object> isa nullable AType */
8842 cltype7 = type_nullable_parser_nodes__AType.color;
8843 idtype8 = type_nullable_parser_nodes__AType.id;
8844 if(var_ptypenode3 == NULL) {
8845 var6 = 1;
8846 } else {
8847 if(cltype7 >= var_ptypenode3->type->table_size) {
8848 var6 = 0;
8849 } else {
8850 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
8851 }
8852 }
8853 if (!var6) {
8854 fprintf(stderr, "Runtime error: %s", "Assert failed");
8855 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26972);
8856 show_backtrace(1);
8857 }
8858 var_pexprsnode5 = var_nodearraylist4;
8859 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
8860 cltype10 = type_nullable_parser_nodes__AExprs.color;
8861 idtype11 = type_nullable_parser_nodes__AExprs.id;
8862 if(var_pexprsnode5 == NULL) {
8863 var9 = 1;
8864 } else {
8865 if(cltype10 >= var_pexprsnode5->type->table_size) {
8866 var9 = 0;
8867 } else {
8868 var9 = var_pexprsnode5->type->type_table[cltype10] == idtype11;
8869 }
8870 }
8871 if (!var9) {
8872 fprintf(stderr, "Runtime error: %s", "Assert failed");
8873 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26974);
8874 show_backtrace(1);
8875 }
8876 var12 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
8877 var13 = NULL;
8878 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var12, var_tkwnewnode2, var_ptypenode3, var13, var_pexprsnode5) /* init_anewexpr on <var12:ANewExpr>*/;
8879 var_pexprnode1 = var12;
8880 var_node_list = var_pexprnode1;
8881 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction744> */
8882 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
8883 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
8884 RET_LABEL:;
8885 }
8886 /* method parser#ReduceAction744#action for (self: Object, Parser) */
8887 void VIRTUAL_parser__ReduceAction744__action(val* self, val* p0) {
8888 parser__ReduceAction744__action(self, p0);
8889 RET_LABEL:;
8890 }
8891 /* method parser#ReduceAction745#action for (self: ReduceAction745, Parser) */
8892 void parser__ReduceAction745__action(val* self, val* p0) {
8893 val* var_p /* var p: Parser */;
8894 val* var /* : null */;
8895 val* var_node_list /* var node_list: nullable Object */;
8896 val* var1 /* : nullable Object */;
8897 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8898 val* var2 /* : nullable Object */;
8899 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8900 val* var3 /* : nullable Object */;
8901 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8902 val* var4 /* : nullable Object */;
8903 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8904 val* var5 /* : nullable Object */;
8905 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8906 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
8907 short int var6 /* : Bool */;
8908 int cltype;
8909 int idtype;
8910 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8911 short int var7 /* : Bool */;
8912 int cltype8;
8913 int idtype9;
8914 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
8915 short int var10 /* : Bool */;
8916 int cltype11;
8917 int idtype12;
8918 val* var13 /* : AIssetAttrExpr */;
8919 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
8920 long var14 /* : Int */;
8921 long var15 /* : Int */;
8922 var_p = p0;
8923 var = NULL;
8924 var_node_list = var;
8925 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8926 var_nodearraylist5 = var1;
8927 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8928 var_nodearraylist4 = var2;
8929 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8930 var_nodearraylist3 = var3;
8931 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8932 var_nodearraylist2 = var4;
8933 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8934 var_nodearraylist1 = var5;
8935 var_tkwissetnode2 = var_nodearraylist1;
8936 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
8937 cltype = type_nullable_parser_nodes__TKwisset.color;
8938 idtype = type_nullable_parser_nodes__TKwisset.id;
8939 if(var_tkwissetnode2 == NULL) {
8940 var6 = 1;
8941 } else {
8942 if(cltype >= var_tkwissetnode2->type->table_size) {
8943 var6 = 0;
8944 } else {
8945 var6 = var_tkwissetnode2->type->type_table[cltype] == idtype;
8946 }
8947 }
8948 if (!var6) {
8949 fprintf(stderr, "Runtime error: %s", "Assert failed");
8950 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26996);
8951 show_backtrace(1);
8952 }
8953 var_pexprnode3 = var_nodearraylist2;
8954 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8955 cltype8 = type_nullable_parser_nodes__AExpr.color;
8956 idtype9 = type_nullable_parser_nodes__AExpr.id;
8957 if(var_pexprnode3 == NULL) {
8958 var7 = 1;
8959 } else {
8960 if(cltype8 >= var_pexprnode3->type->table_size) {
8961 var7 = 0;
8962 } else {
8963 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
8964 }
8965 }
8966 if (!var7) {
8967 fprintf(stderr, "Runtime error: %s", "Assert failed");
8968 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26998);
8969 show_backtrace(1);
8970 }
8971 var_tattridnode4 = var_nodearraylist5;
8972 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
8973 cltype11 = type_nullable_parser_nodes__TAttrid.color;
8974 idtype12 = type_nullable_parser_nodes__TAttrid.id;
8975 if(var_tattridnode4 == NULL) {
8976 var10 = 1;
8977 } else {
8978 if(cltype11 >= var_tattridnode4->type->table_size) {
8979 var10 = 0;
8980 } else {
8981 var10 = var_tattridnode4->type->type_table[cltype11] == idtype12;
8982 }
8983 }
8984 if (!var10) {
8985 fprintf(stderr, "Runtime error: %s", "Assert failed");
8986 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27000);
8987 show_backtrace(1);
8988 }
8989 var13 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
8990 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var13, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var13:AIssetAttrExpr>*/;
8991 var_pexprnode1 = var13;
8992 var_node_list = var_pexprnode1;
8993 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction745> */
8994 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
8995 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
8996 RET_LABEL:;
8997 }
8998 /* method parser#ReduceAction745#action for (self: Object, Parser) */
8999 void VIRTUAL_parser__ReduceAction745__action(val* self, val* p0) {
9000 parser__ReduceAction745__action(self, p0);
9001 RET_LABEL:;
9002 }
9003 /* method parser#ReduceAction746#action for (self: ReduceAction746, Parser) */
9004 void parser__ReduceAction746__action(val* self, val* p0) {
9005 val* var_p /* var p: Parser */;
9006 val* var /* : null */;
9007 val* var_node_list /* var node_list: nullable Object */;
9008 val* var1 /* : nullable Object */;
9009 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9010 val* var2 /* : nullable Object */;
9011 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9012 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9013 short int var3 /* : Bool */;
9014 int cltype;
9015 int idtype;
9016 val* var4 /* : AImplicitSelfExpr */;
9017 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
9018 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9019 short int var5 /* : Bool */;
9020 int cltype6;
9021 int idtype7;
9022 val* var8 /* : AIssetAttrExpr */;
9023 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9024 long var9 /* : Int */;
9025 long var10 /* : Int */;
9026 var_p = p0;
9027 var = NULL;
9028 var_node_list = var;
9029 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9030 var_nodearraylist2 = var1;
9031 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9032 var_nodearraylist1 = var2;
9033 var_tkwissetnode2 = var_nodearraylist1;
9034 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9035 cltype = type_nullable_parser_nodes__TKwisset.color;
9036 idtype = type_nullable_parser_nodes__TKwisset.id;
9037 if(var_tkwissetnode2 == NULL) {
9038 var3 = 1;
9039 } else {
9040 if(cltype >= var_tkwissetnode2->type->table_size) {
9041 var3 = 0;
9042 } else {
9043 var3 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9044 }
9045 }
9046 if (!var3) {
9047 fprintf(stderr, "Runtime error: %s", "Assert failed");
9048 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27018);
9049 show_backtrace(1);
9050 }
9051 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9052 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
9053 var_pexprnode3 = var4;
9054 var_tattridnode4 = var_nodearraylist2;
9055 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9056 cltype6 = type_nullable_parser_nodes__TAttrid.color;
9057 idtype7 = type_nullable_parser_nodes__TAttrid.id;
9058 if(var_tattridnode4 == NULL) {
9059 var5 = 1;
9060 } else {
9061 if(cltype6 >= var_tattridnode4->type->table_size) {
9062 var5 = 0;
9063 } else {
9064 var5 = var_tattridnode4->type->type_table[cltype6] == idtype7;
9065 }
9066 }
9067 if (!var5) {
9068 fprintf(stderr, "Runtime error: %s", "Assert failed");
9069 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27021);
9070 show_backtrace(1);
9071 }
9072 var8 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9073 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var8, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var8:AIssetAttrExpr>*/;
9074 var_pexprnode1 = var8;
9075 var_node_list = var_pexprnode1;
9076 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction746> */
9077 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9079 RET_LABEL:;
9080 }
9081 /* method parser#ReduceAction746#action for (self: Object, Parser) */
9082 void VIRTUAL_parser__ReduceAction746__action(val* self, val* p0) {
9083 parser__ReduceAction746__action(self, p0);
9084 RET_LABEL:;
9085 }
9086 /* method parser#ReduceAction747#action for (self: ReduceAction747, Parser) */
9087 void parser__ReduceAction747__action(val* self, val* p0) {
9088 val* var_p /* var p: Parser */;
9089 val* var /* : null */;
9090 val* var_node_list /* var node_list: nullable Object */;
9091 val* var1 /* : nullable Object */;
9092 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9093 val* var2 /* : nullable Object */;
9094 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9095 val* var3 /* : nullable Object */;
9096 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9097 val* var4 /* : nullable Object */;
9098 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9099 val* var5 /* : nullable Object */;
9100 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9101 val* var6 /* : nullable Object */;
9102 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9103 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9104 short int var7 /* : Bool */;
9105 int cltype;
9106 int idtype;
9107 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9108 short int var8 /* : Bool */;
9109 int cltype9;
9110 int idtype10;
9111 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9112 short int var11 /* : Bool */;
9113 int cltype12;
9114 int idtype13;
9115 val* var14 /* : AIssetAttrExpr */;
9116 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9117 long var15 /* : Int */;
9118 long var16 /* : Int */;
9119 var_p = p0;
9120 var = NULL;
9121 var_node_list = var;
9122 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9123 var_nodearraylist6 = var1;
9124 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9125 var_nodearraylist5 = var2;
9126 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9127 var_nodearraylist4 = var3;
9128 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9129 var_nodearraylist3 = var4;
9130 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9131 var_nodearraylist2 = var5;
9132 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9133 var_nodearraylist1 = var6;
9134 var_tkwissetnode2 = var_nodearraylist1;
9135 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9136 cltype = type_nullable_parser_nodes__TKwisset.color;
9137 idtype = type_nullable_parser_nodes__TKwisset.id;
9138 if(var_tkwissetnode2 == NULL) {
9139 var7 = 1;
9140 } else {
9141 if(cltype >= var_tkwissetnode2->type->table_size) {
9142 var7 = 0;
9143 } else {
9144 var7 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9145 }
9146 }
9147 if (!var7) {
9148 fprintf(stderr, "Runtime error: %s", "Assert failed");
9149 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27043);
9150 show_backtrace(1);
9151 }
9152 var_pexprnode3 = var_nodearraylist2;
9153 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9154 cltype9 = type_nullable_parser_nodes__AExpr.color;
9155 idtype10 = type_nullable_parser_nodes__AExpr.id;
9156 if(var_pexprnode3 == NULL) {
9157 var8 = 1;
9158 } else {
9159 if(cltype9 >= var_pexprnode3->type->table_size) {
9160 var8 = 0;
9161 } else {
9162 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
9163 }
9164 }
9165 if (!var8) {
9166 fprintf(stderr, "Runtime error: %s", "Assert failed");
9167 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27045);
9168 show_backtrace(1);
9169 }
9170 var_tattridnode4 = var_nodearraylist6;
9171 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9172 cltype12 = type_nullable_parser_nodes__TAttrid.color;
9173 idtype13 = type_nullable_parser_nodes__TAttrid.id;
9174 if(var_tattridnode4 == NULL) {
9175 var11 = 1;
9176 } else {
9177 if(cltype12 >= var_tattridnode4->type->table_size) {
9178 var11 = 0;
9179 } else {
9180 var11 = var_tattridnode4->type->type_table[cltype12] == idtype13;
9181 }
9182 }
9183 if (!var11) {
9184 fprintf(stderr, "Runtime error: %s", "Assert failed");
9185 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27047);
9186 show_backtrace(1);
9187 }
9188 var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9189 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var14:AIssetAttrExpr>*/;
9190 var_pexprnode1 = var14;
9191 var_node_list = var_pexprnode1;
9192 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction747> */
9193 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9194 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9195 RET_LABEL:;
9196 }
9197 /* method parser#ReduceAction747#action for (self: Object, Parser) */
9198 void VIRTUAL_parser__ReduceAction747__action(val* self, val* p0) {
9199 parser__ReduceAction747__action(self, p0);
9200 RET_LABEL:;
9201 }
9202 /* method parser#ReduceAction748#action for (self: ReduceAction748, Parser) */
9203 void parser__ReduceAction748__action(val* self, val* p0) {
9204 val* var_p /* var p: Parser */;
9205 val* var /* : null */;
9206 val* var_node_list /* var node_list: nullable Object */;
9207 val* var1 /* : nullable Object */;
9208 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9209 val* var2 /* : nullable Object */;
9210 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9211 val* var3 /* : nullable Object */;
9212 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9213 val* var4 /* : nullable Object */;
9214 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9215 val* var5 /* : nullable Object */;
9216 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9217 val* var6 /* : nullable Object */;
9218 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9219 val* var7 /* : nullable Object */;
9220 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9221 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9222 short int var8 /* : Bool */;
9223 int cltype;
9224 int idtype;
9225 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9226 short int var9 /* : Bool */;
9227 int cltype10;
9228 int idtype11;
9229 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9230 short int var12 /* : Bool */;
9231 int cltype13;
9232 int idtype14;
9233 val* var15 /* : AIssetAttrExpr */;
9234 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9235 long var16 /* : Int */;
9236 long var17 /* : Int */;
9237 var_p = p0;
9238 var = NULL;
9239 var_node_list = var;
9240 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9241 var_nodearraylist7 = var1;
9242 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9243 var_nodearraylist6 = var2;
9244 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9245 var_nodearraylist5 = var3;
9246 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9247 var_nodearraylist4 = var4;
9248 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9249 var_nodearraylist3 = var5;
9250 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9251 var_nodearraylist2 = var6;
9252 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9253 var_nodearraylist1 = var7;
9254 var_tkwissetnode2 = var_nodearraylist1;
9255 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9256 cltype = type_nullable_parser_nodes__TKwisset.color;
9257 idtype = type_nullable_parser_nodes__TKwisset.id;
9258 if(var_tkwissetnode2 == NULL) {
9259 var8 = 1;
9260 } else {
9261 if(cltype >= var_tkwissetnode2->type->table_size) {
9262 var8 = 0;
9263 } else {
9264 var8 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9265 }
9266 }
9267 if (!var8) {
9268 fprintf(stderr, "Runtime error: %s", "Assert failed");
9269 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27070);
9270 show_backtrace(1);
9271 }
9272 var_pexprnode3 = var_nodearraylist2;
9273 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9274 cltype10 = type_nullable_parser_nodes__AExpr.color;
9275 idtype11 = type_nullable_parser_nodes__AExpr.id;
9276 if(var_pexprnode3 == NULL) {
9277 var9 = 1;
9278 } else {
9279 if(cltype10 >= var_pexprnode3->type->table_size) {
9280 var9 = 0;
9281 } else {
9282 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
9283 }
9284 }
9285 if (!var9) {
9286 fprintf(stderr, "Runtime error: %s", "Assert failed");
9287 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27072);
9288 show_backtrace(1);
9289 }
9290 var_tattridnode4 = var_nodearraylist7;
9291 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9292 cltype13 = type_nullable_parser_nodes__TAttrid.color;
9293 idtype14 = type_nullable_parser_nodes__TAttrid.id;
9294 if(var_tattridnode4 == NULL) {
9295 var12 = 1;
9296 } else {
9297 if(cltype13 >= var_tattridnode4->type->table_size) {
9298 var12 = 0;
9299 } else {
9300 var12 = var_tattridnode4->type->type_table[cltype13] == idtype14;
9301 }
9302 }
9303 if (!var12) {
9304 fprintf(stderr, "Runtime error: %s", "Assert failed");
9305 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27074);
9306 show_backtrace(1);
9307 }
9308 var15 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9309 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var15, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var15:AIssetAttrExpr>*/;
9310 var_pexprnode1 = var15;
9311 var_node_list = var_pexprnode1;
9312 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction748> */
9313 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9314 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9315 RET_LABEL:;
9316 }
9317 /* method parser#ReduceAction748#action for (self: Object, Parser) */
9318 void VIRTUAL_parser__ReduceAction748__action(val* self, val* p0) {
9319 parser__ReduceAction748__action(self, p0);
9320 RET_LABEL:;
9321 }
9322 /* method parser#ReduceAction750#action for (self: ReduceAction750, Parser) */
9323 void parser__ReduceAction750__action(val* self, val* p0) {
9324 val* var_p /* var p: Parser */;
9325 val* var /* : null */;
9326 val* var_node_list /* var node_list: nullable Object */;
9327 val* var1 /* : nullable Object */;
9328 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9329 val* var2 /* : nullable Object */;
9330 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9331 val* var3 /* : nullable Object */;
9332 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9333 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9334 short int var4 /* : Bool */;
9335 int cltype;
9336 int idtype;
9337 val* var5 /* : AImplicitSelfExpr */;
9338 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
9339 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9340 short int var6 /* : Bool */;
9341 int cltype7;
9342 int idtype8;
9343 val* var9 /* : AIssetAttrExpr */;
9344 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9345 long var10 /* : Int */;
9346 long var11 /* : Int */;
9347 var_p = p0;
9348 var = NULL;
9349 var_node_list = var;
9350 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9351 var_nodearraylist3 = var1;
9352 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9353 var_nodearraylist2 = var2;
9354 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9355 var_nodearraylist1 = var3;
9356 var_tkwissetnode2 = var_nodearraylist1;
9357 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9358 cltype = type_nullable_parser_nodes__TKwisset.color;
9359 idtype = type_nullable_parser_nodes__TKwisset.id;
9360 if(var_tkwissetnode2 == NULL) {
9361 var4 = 1;
9362 } else {
9363 if(cltype >= var_tkwissetnode2->type->table_size) {
9364 var4 = 0;
9365 } else {
9366 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9367 }
9368 }
9369 if (!var4) {
9370 fprintf(stderr, "Runtime error: %s", "Assert failed");
9371 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27093);
9372 show_backtrace(1);
9373 }
9374 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9375 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
9376 var_pexprnode3 = var5;
9377 var_tattridnode4 = var_nodearraylist3;
9378 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9379 cltype7 = type_nullable_parser_nodes__TAttrid.color;
9380 idtype8 = type_nullable_parser_nodes__TAttrid.id;
9381 if(var_tattridnode4 == NULL) {
9382 var6 = 1;
9383 } else {
9384 if(cltype7 >= var_tattridnode4->type->table_size) {
9385 var6 = 0;
9386 } else {
9387 var6 = var_tattridnode4->type->type_table[cltype7] == idtype8;
9388 }
9389 }
9390 if (!var6) {
9391 fprintf(stderr, "Runtime error: %s", "Assert failed");
9392 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27096);
9393 show_backtrace(1);
9394 }
9395 var9 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9396 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var9, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var9:AIssetAttrExpr>*/;
9397 var_pexprnode1 = var9;
9398 var_node_list = var_pexprnode1;
9399 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction750> */
9400 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9401 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9402 RET_LABEL:;
9403 }
9404 /* method parser#ReduceAction750#action for (self: Object, Parser) */
9405 void VIRTUAL_parser__ReduceAction750__action(val* self, val* p0) {
9406 parser__ReduceAction750__action(self, p0);
9407 RET_LABEL:;
9408 }
9409 /* method parser#ReduceAction751#action for (self: ReduceAction751, Parser) */
9410 void parser__ReduceAction751__action(val* self, val* p0) {
9411 val* var_p /* var p: Parser */;
9412 val* var /* : null */;
9413 val* var_node_list /* var node_list: nullable Object */;
9414 val* var1 /* : nullable Object */;
9415 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9416 val* var2 /* : nullable Object */;
9417 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9418 val* var3 /* : nullable Object */;
9419 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9420 val* var4 /* : nullable Object */;
9421 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9422 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9423 short int var5 /* : Bool */;
9424 int cltype;
9425 int idtype;
9426 val* var6 /* : AImplicitSelfExpr */;
9427 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
9428 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9429 short int var7 /* : Bool */;
9430 int cltype8;
9431 int idtype9;
9432 val* var10 /* : AIssetAttrExpr */;
9433 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9434 long var11 /* : Int */;
9435 long var12 /* : Int */;
9436 var_p = p0;
9437 var = NULL;
9438 var_node_list = var;
9439 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9440 var_nodearraylist4 = var1;
9441 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9442 var_nodearraylist3 = var2;
9443 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9444 var_nodearraylist2 = var3;
9445 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9446 var_nodearraylist1 = var4;
9447 var_tkwissetnode2 = var_nodearraylist1;
9448 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9449 cltype = type_nullable_parser_nodes__TKwisset.color;
9450 idtype = type_nullable_parser_nodes__TKwisset.id;
9451 if(var_tkwissetnode2 == NULL) {
9452 var5 = 1;
9453 } else {
9454 if(cltype >= var_tkwissetnode2->type->table_size) {
9455 var5 = 0;
9456 } else {
9457 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9458 }
9459 }
9460 if (!var5) {
9461 fprintf(stderr, "Runtime error: %s", "Assert failed");
9462 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27116);
9463 show_backtrace(1);
9464 }
9465 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9466 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
9467 var_pexprnode3 = var6;
9468 var_tattridnode4 = var_nodearraylist4;
9469 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9470 cltype8 = type_nullable_parser_nodes__TAttrid.color;
9471 idtype9 = type_nullable_parser_nodes__TAttrid.id;
9472 if(var_tattridnode4 == NULL) {
9473 var7 = 1;
9474 } else {
9475 if(cltype8 >= var_tattridnode4->type->table_size) {
9476 var7 = 0;
9477 } else {
9478 var7 = var_tattridnode4->type->type_table[cltype8] == idtype9;
9479 }
9480 }
9481 if (!var7) {
9482 fprintf(stderr, "Runtime error: %s", "Assert failed");
9483 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27119);
9484 show_backtrace(1);
9485 }
9486 var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9487 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var10:AIssetAttrExpr>*/;
9488 var_pexprnode1 = var10;
9489 var_node_list = var_pexprnode1;
9490 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction751> */
9491 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9492 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9493 RET_LABEL:;
9494 }
9495 /* method parser#ReduceAction751#action for (self: Object, Parser) */
9496 void VIRTUAL_parser__ReduceAction751__action(val* self, val* p0) {
9497 parser__ReduceAction751__action(self, p0);
9498 RET_LABEL:;
9499 }
9500 /* method parser#ReduceAction753#action for (self: ReduceAction753, Parser) */
9501 void parser__ReduceAction753__action(val* self, val* p0) {
9502 val* var_p /* var p: Parser */;
9503 val* var /* : null */;
9504 val* var_node_list /* var node_list: nullable Object */;
9505 val* var1 /* : nullable Object */;
9506 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9507 val* var2 /* : nullable Object */;
9508 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9509 val* var3 /* : nullable Object */;
9510 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9511 val* var4 /* : nullable Object */;
9512 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9513 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9514 short int var5 /* : Bool */;
9515 int cltype;
9516 int idtype;
9517 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9518 short int var6 /* : Bool */;
9519 int cltype7;
9520 int idtype8;
9521 val* var9 /* : AAttrExpr */;
9522 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9523 long var10 /* : Int */;
9524 long var11 /* : Int */;
9525 var_p = p0;
9526 var = NULL;
9527 var_node_list = var;
9528 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9529 var_nodearraylist4 = var1;
9530 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9531 var_nodearraylist3 = var2;
9532 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9533 var_nodearraylist2 = var3;
9534 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9535 var_nodearraylist1 = var4;
9536 var_pexprnode2 = var_nodearraylist1;
9537 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9538 cltype = type_nullable_parser_nodes__AExpr.color;
9539 idtype = type_nullable_parser_nodes__AExpr.id;
9540 if(var_pexprnode2 == NULL) {
9541 var5 = 1;
9542 } else {
9543 if(cltype >= var_pexprnode2->type->table_size) {
9544 var5 = 0;
9545 } else {
9546 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9547 }
9548 }
9549 if (!var5) {
9550 fprintf(stderr, "Runtime error: %s", "Assert failed");
9551 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27139);
9552 show_backtrace(1);
9553 }
9554 var_tattridnode3 = var_nodearraylist4;
9555 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9556 cltype7 = type_nullable_parser_nodes__TAttrid.color;
9557 idtype8 = type_nullable_parser_nodes__TAttrid.id;
9558 if(var_tattridnode3 == NULL) {
9559 var6 = 1;
9560 } else {
9561 if(cltype7 >= var_tattridnode3->type->table_size) {
9562 var6 = 0;
9563 } else {
9564 var6 = var_tattridnode3->type->type_table[cltype7] == idtype8;
9565 }
9566 }
9567 if (!var6) {
9568 fprintf(stderr, "Runtime error: %s", "Assert failed");
9569 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27141);
9570 show_backtrace(1);
9571 }
9572 var9 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9573 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var9, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var9:AAttrExpr>*/;
9574 var_pexprnode1 = var9;
9575 var_node_list = var_pexprnode1;
9576 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction753> */
9577 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9578 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9579 RET_LABEL:;
9580 }
9581 /* method parser#ReduceAction753#action for (self: Object, Parser) */
9582 void VIRTUAL_parser__ReduceAction753__action(val* self, val* p0) {
9583 parser__ReduceAction753__action(self, p0);
9584 RET_LABEL:;
9585 }
9586 /* method parser#ReduceAction754#action for (self: ReduceAction754, Parser) */
9587 void parser__ReduceAction754__action(val* self, val* p0) {
9588 val* var_p /* var p: Parser */;
9589 val* var /* : null */;
9590 val* var_node_list /* var node_list: nullable Object */;
9591 val* var1 /* : nullable Object */;
9592 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9593 val* var2 /* : AImplicitSelfExpr */;
9594 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9595 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9596 short int var3 /* : Bool */;
9597 int cltype;
9598 int idtype;
9599 val* var4 /* : AAttrExpr */;
9600 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9601 long var5 /* : Int */;
9602 long var6 /* : Int */;
9603 var_p = p0;
9604 var = NULL;
9605 var_node_list = var;
9606 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9607 var_nodearraylist1 = var1;
9608 var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9609 ((void (*)(val*))(var2->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var2) /* init_aimplicitselfexpr on <var2:AImplicitSelfExpr>*/;
9610 var_pexprnode2 = var2;
9611 var_tattridnode3 = var_nodearraylist1;
9612 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9613 cltype = type_nullable_parser_nodes__TAttrid.color;
9614 idtype = type_nullable_parser_nodes__TAttrid.id;
9615 if(var_tattridnode3 == NULL) {
9616 var3 = 1;
9617 } else {
9618 if(cltype >= var_tattridnode3->type->table_size) {
9619 var3 = 0;
9620 } else {
9621 var3 = var_tattridnode3->type->type_table[cltype] == idtype;
9622 }
9623 }
9624 if (!var3) {
9625 fprintf(stderr, "Runtime error: %s", "Assert failed");
9626 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27158);
9627 show_backtrace(1);
9628 }
9629 var4 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9630 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var4, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var4:AAttrExpr>*/;
9631 var_pexprnode1 = var4;
9632 var_node_list = var_pexprnode1;
9633 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction754> */
9634 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9635 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9636 RET_LABEL:;
9637 }
9638 /* method parser#ReduceAction754#action for (self: Object, Parser) */
9639 void VIRTUAL_parser__ReduceAction754__action(val* self, val* p0) {
9640 parser__ReduceAction754__action(self, p0);
9641 RET_LABEL:;
9642 }
9643 /* method parser#ReduceAction755#action for (self: ReduceAction755, Parser) */
9644 void parser__ReduceAction755__action(val* self, val* p0) {
9645 val* var_p /* var p: Parser */;
9646 val* var /* : null */;
9647 val* var_node_list /* var node_list: nullable Object */;
9648 val* var1 /* : nullable Object */;
9649 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9650 val* var2 /* : nullable Object */;
9651 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9652 val* var3 /* : nullable Object */;
9653 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9654 val* var4 /* : nullable Object */;
9655 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9656 val* var5 /* : nullable Object */;
9657 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9658 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9659 short int var6 /* : Bool */;
9660 int cltype;
9661 int idtype;
9662 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9663 short int var7 /* : Bool */;
9664 int cltype8;
9665 int idtype9;
9666 val* var10 /* : AAttrExpr */;
9667 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9668 long var11 /* : Int */;
9669 long var12 /* : Int */;
9670 var_p = p0;
9671 var = NULL;
9672 var_node_list = var;
9673 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9674 var_nodearraylist5 = var1;
9675 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9676 var_nodearraylist4 = var2;
9677 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9678 var_nodearraylist3 = var3;
9679 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9680 var_nodearraylist2 = var4;
9681 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9682 var_nodearraylist1 = var5;
9683 var_pexprnode2 = var_nodearraylist1;
9684 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9685 cltype = type_nullable_parser_nodes__AExpr.color;
9686 idtype = type_nullable_parser_nodes__AExpr.id;
9687 if(var_pexprnode2 == NULL) {
9688 var6 = 1;
9689 } else {
9690 if(cltype >= var_pexprnode2->type->table_size) {
9691 var6 = 0;
9692 } else {
9693 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
9694 }
9695 }
9696 if (!var6) {
9697 fprintf(stderr, "Runtime error: %s", "Assert failed");
9698 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27178);
9699 show_backtrace(1);
9700 }
9701 var_tattridnode3 = var_nodearraylist5;
9702 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9703 cltype8 = type_nullable_parser_nodes__TAttrid.color;
9704 idtype9 = type_nullable_parser_nodes__TAttrid.id;
9705 if(var_tattridnode3 == NULL) {
9706 var7 = 1;
9707 } else {
9708 if(cltype8 >= var_tattridnode3->type->table_size) {
9709 var7 = 0;
9710 } else {
9711 var7 = var_tattridnode3->type->type_table[cltype8] == idtype9;
9712 }
9713 }
9714 if (!var7) {
9715 fprintf(stderr, "Runtime error: %s", "Assert failed");
9716 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27180);
9717 show_backtrace(1);
9718 }
9719 var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9720 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var10, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var10:AAttrExpr>*/;
9721 var_pexprnode1 = var10;
9722 var_node_list = var_pexprnode1;
9723 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction755> */
9724 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9725 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9726 RET_LABEL:;
9727 }
9728 /* method parser#ReduceAction755#action for (self: Object, Parser) */
9729 void VIRTUAL_parser__ReduceAction755__action(val* self, val* p0) {
9730 parser__ReduceAction755__action(self, p0);
9731 RET_LABEL:;
9732 }
9733 /* method parser#ReduceAction756#action for (self: ReduceAction756, Parser) */
9734 void parser__ReduceAction756__action(val* self, val* p0) {
9735 val* var_p /* var p: Parser */;
9736 val* var /* : null */;
9737 val* var_node_list /* var node_list: nullable Object */;
9738 val* var1 /* : nullable Object */;
9739 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9740 val* var2 /* : nullable Object */;
9741 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9742 val* var3 /* : nullable Object */;
9743 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9744 val* var4 /* : nullable Object */;
9745 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9746 val* var5 /* : nullable Object */;
9747 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9748 val* var6 /* : nullable Object */;
9749 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9750 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9751 short int var7 /* : Bool */;
9752 int cltype;
9753 int idtype;
9754 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9755 short int var8 /* : Bool */;
9756 int cltype9;
9757 int idtype10;
9758 val* var11 /* : AAttrExpr */;
9759 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9760 long var12 /* : Int */;
9761 long var13 /* : Int */;
9762 var_p = p0;
9763 var = NULL;
9764 var_node_list = var;
9765 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9766 var_nodearraylist6 = var1;
9767 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9768 var_nodearraylist5 = var2;
9769 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9770 var_nodearraylist4 = var3;
9771 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9772 var_nodearraylist3 = var4;
9773 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9774 var_nodearraylist2 = var5;
9775 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9776 var_nodearraylist1 = var6;
9777 var_pexprnode2 = var_nodearraylist1;
9778 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9779 cltype = type_nullable_parser_nodes__AExpr.color;
9780 idtype = type_nullable_parser_nodes__AExpr.id;
9781 if(var_pexprnode2 == NULL) {
9782 var7 = 1;
9783 } else {
9784 if(cltype >= var_pexprnode2->type->table_size) {
9785 var7 = 0;
9786 } else {
9787 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
9788 }
9789 }
9790 if (!var7) {
9791 fprintf(stderr, "Runtime error: %s", "Assert failed");
9792 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27201);
9793 show_backtrace(1);
9794 }
9795 var_tattridnode3 = var_nodearraylist6;
9796 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9797 cltype9 = type_nullable_parser_nodes__TAttrid.color;
9798 idtype10 = type_nullable_parser_nodes__TAttrid.id;
9799 if(var_tattridnode3 == NULL) {
9800 var8 = 1;
9801 } else {
9802 if(cltype9 >= var_tattridnode3->type->table_size) {
9803 var8 = 0;
9804 } else {
9805 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
9806 }
9807 }
9808 if (!var8) {
9809 fprintf(stderr, "Runtime error: %s", "Assert failed");
9810 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27203);
9811 show_backtrace(1);
9812 }
9813 var11 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9814 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var11, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var11:AAttrExpr>*/;
9815 var_pexprnode1 = var11;
9816 var_node_list = var_pexprnode1;
9817 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction756> */
9818 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9819 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9820 RET_LABEL:;
9821 }
9822 /* method parser#ReduceAction756#action for (self: Object, Parser) */
9823 void VIRTUAL_parser__ReduceAction756__action(val* self, val* p0) {
9824 parser__ReduceAction756__action(self, p0);
9825 RET_LABEL:;
9826 }
9827 /* method parser#ReduceAction758#action for (self: ReduceAction758, Parser) */
9828 void parser__ReduceAction758__action(val* self, val* p0) {
9829 val* var_p /* var p: Parser */;
9830 val* var /* : null */;
9831 val* var_node_list /* var node_list: nullable Object */;
9832 val* var1 /* : nullable Object */;
9833 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9834 val* var2 /* : nullable Object */;
9835 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9836 val* var3 /* : AImplicitSelfExpr */;
9837 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9838 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9839 short int var4 /* : Bool */;
9840 int cltype;
9841 int idtype;
9842 val* var5 /* : AAttrExpr */;
9843 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9844 long var6 /* : Int */;
9845 long var7 /* : Int */;
9846 var_p = p0;
9847 var = NULL;
9848 var_node_list = var;
9849 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9850 var_nodearraylist2 = var1;
9851 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9852 var_nodearraylist1 = var2;
9853 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9854 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
9855 var_pexprnode2 = var3;
9856 var_tattridnode3 = var_nodearraylist2;
9857 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9858 cltype = type_nullable_parser_nodes__TAttrid.color;
9859 idtype = type_nullable_parser_nodes__TAttrid.id;
9860 if(var_tattridnode3 == NULL) {
9861 var4 = 1;
9862 } else {
9863 if(cltype >= var_tattridnode3->type->table_size) {
9864 var4 = 0;
9865 } else {
9866 var4 = var_tattridnode3->type->type_table[cltype] == idtype;
9867 }
9868 }
9869 if (!var4) {
9870 fprintf(stderr, "Runtime error: %s", "Assert failed");
9871 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27221);
9872 show_backtrace(1);
9873 }
9874 var5 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9875 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var5, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var5:AAttrExpr>*/;
9876 var_pexprnode1 = var5;
9877 var_node_list = var_pexprnode1;
9878 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction758> */
9879 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9880 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9881 RET_LABEL:;
9882 }
9883 /* method parser#ReduceAction758#action for (self: Object, Parser) */
9884 void VIRTUAL_parser__ReduceAction758__action(val* self, val* p0) {
9885 parser__ReduceAction758__action(self, p0);
9886 RET_LABEL:;
9887 }
9888 /* method parser#ReduceAction759#action for (self: ReduceAction759, Parser) */
9889 void parser__ReduceAction759__action(val* self, val* p0) {
9890 val* var_p /* var p: Parser */;
9891 val* var /* : null */;
9892 val* var_node_list /* var node_list: nullable Object */;
9893 val* var1 /* : nullable Object */;
9894 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9895 val* var2 /* : nullable Object */;
9896 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9897 val* var3 /* : nullable Object */;
9898 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9899 val* var4 /* : AImplicitSelfExpr */;
9900 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9901 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9902 short int var5 /* : Bool */;
9903 int cltype;
9904 int idtype;
9905 val* var6 /* : AAttrExpr */;
9906 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9907 long var7 /* : Int */;
9908 long var8 /* : Int */;
9909 var_p = p0;
9910 var = NULL;
9911 var_node_list = var;
9912 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9913 var_nodearraylist3 = var1;
9914 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9915 var_nodearraylist2 = var2;
9916 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9917 var_nodearraylist1 = var3;
9918 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9919 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
9920 var_pexprnode2 = var4;
9921 var_tattridnode3 = var_nodearraylist3;
9922 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9923 cltype = type_nullable_parser_nodes__TAttrid.color;
9924 idtype = type_nullable_parser_nodes__TAttrid.id;
9925 if(var_tattridnode3 == NULL) {
9926 var5 = 1;
9927 } else {
9928 if(cltype >= var_tattridnode3->type->table_size) {
9929 var5 = 0;
9930 } else {
9931 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
9932 }
9933 }
9934 if (!var5) {
9935 fprintf(stderr, "Runtime error: %s", "Assert failed");
9936 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27240);
9937 show_backtrace(1);
9938 }
9939 var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9940 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var6, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var6:AAttrExpr>*/;
9941 var_pexprnode1 = var6;
9942 var_node_list = var_pexprnode1;
9943 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction759> */
9944 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
9945 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
9946 RET_LABEL:;
9947 }
9948 /* method parser#ReduceAction759#action for (self: Object, Parser) */
9949 void VIRTUAL_parser__ReduceAction759__action(val* self, val* p0) {
9950 parser__ReduceAction759__action(self, p0);
9951 RET_LABEL:;
9952 }